JP5987560B2 - データ転送装置、データ転送方法およびデータ転送プログラム - Google Patents
データ転送装置、データ転送方法およびデータ転送プログラム Download PDFInfo
- Publication number
- JP5987560B2 JP5987560B2 JP2012191316A JP2012191316A JP5987560B2 JP 5987560 B2 JP5987560 B2 JP 5987560B2 JP 2012191316 A JP2012191316 A JP 2012191316A JP 2012191316 A JP2012191316 A JP 2012191316A JP 5987560 B2 JP5987560 B2 JP 5987560B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- address
- received
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
実施形態のデータ転送装置について説明する。
データ転送装置は、転送元の装置から受信したパケットを転送先の装置へ転送する装置である。
図1において、データ転送装置1は、受信部11、受信パケット格納部12、処理部13、送信パケット格納部14、クレジット制御部15、および送信部16を備えている。なお、データ転送装置2は、データ転送装置1と同じ機能を有している。以下の説明においては、データ転送装置1の機能を説明する。データ転送装置2の機能については、データ転送装置1と同じ機能の名称を統一し、説明を省略する。また、データ転送装置2を送信元の装置として説明する。転送先の装置については、図示しないが、処理部13に含まれる、処理部13に接続されているものとする。また、データ転送装置1は、例えば、PCIe(PCI Express)のルート・コンプレックスや、周辺装置(グラフィックカード、ディスク・ドライブおよび外部入出力カード)等に適用される。
データ転送装置2から送信されるパケットには、例えば、転送先の装置が転送元の装置に対して何も応答を返さないポステッドパケット、および転送先の装置が転送元の装置に対して応答を返すノンポステッドパケットがある。
そして、ポステッドパケット、およびノンポステッドパケットには、それぞれヘッダーとデータとが含まれるパケット、およびヘッダーのみでデータがないパケットがある。
図2を参照して、実施形態の受信パケット格納部12の機能をより詳細に説明する。
図2において、受信パケット格納部12は、パケット分割部201、ヘッダーカウント部202、ヘッダーアドレス設定部203、ヘッダー格納領域204、データカウント部205、データアドレス設定部206、データ格納領域207、アドレステーブル生成部208、アドレステーブル209、および通知部210を備えている。
また、ヘッダーアドレス設定部203は、ヘッダーカウント部202から入力されたヘッダーカウント値を保持する。そして、ヘッダーアドレス設定部203は、ヘッダーカウント部202から入力されたヘッダーに対して設定するヘッダーアドレスを、データ転送装置2から前回パケットを受信したときにヘッダーカウント部202でカウントしたヘッダーカウント値にしても良い。これにより、ヘッダーアドレス設定部203は、他のヘッダーに上書きすることなく、入力されたヘッダーをヘッダー格納領域204に格納することができる。
また、データアドレス設定部206は、データカウント部205から入力されたデータカウント値を保持する。そして、データアドレス設定部206は、データカウント部205から入力されたデータに設定するデータアドレスを、データ転送装置2から前回パケットを受信したときにデータカウント部205でカウントした値から最上位ビットを除いた値に設定する。これにより、データアドレス設定部206は、他のデータに上書きすることなく、入力されたデータをデータ格納領域207に格納することができる。
図3を参照して、実施形態の送信パケット格納部14の機能をより詳細に説明する。
図3において、送信パケット格納部14は、ヘッダークレジットカウント部301、データクレジットカウント部302および送信制御部303を備えている。以下の説明では、データ転送装置1とデータ転送装置2との間で、パケットの送受信をしているものとして説明する。このとき、データ転送装置1とデータ転送装置2とは、互いに送信元の装置、および送信先の装置の2つの役割を果たしている。
また、ヘッダークレジットカウント部301は、データ転送装置2へパケットを送信すると、ヘッダーのクレジット値をデクリメントする。
また、データクレジットカウント部302は、データ転送装置2へパケットを送信すると、パケットに含まれるデータの大きさに比例した値をデータのクレジット値から減算する。
図4において、データ転送装置1は、制御回路401、記憶装置402および通信インターフェイス403を備えている。なお、データ転送装置2は、データ転送装置1と同じ構成を有している。よって、以下の説明においては、データ転送装置1の構成を説明し、データ転送装置2の構成について説明を省略する。
図5は、データ転送装置1がデータ転送装置2から受信したパケットをヘッダーとデータとに分割して、それぞれを受信パケット格納部12のヘッダー格納領域204とデータ格納領域207とに格納するまでの処理内容を示している。
データ転送装置1は、起動すると、データ転送装置2にヘッダーのクレジット値と、データのクレジット値とを含む、クレジット値の初期化信号を送信する(S502)。データ転送装置2は、クレジット値の初期化信号を受信すると、受信パケット格納部22(ヘッダークレジットカウント部301、およびデータクレジットカウント部302)に格納されている、ヘッダーのクレジット値と、データのクレジット値とをクレジット値の初期化信号に示される値に更新する。クレジット値の初期化信号に示される値とは、受信パケット格納部12が格納できるヘッダー数、およびデータの大きさに応じたクレジット値の最大値であっても良いし、適宜選択された値でも良い。
そして、ヘッダーアドレス設定部203は、ヘッダーアドレスを設定して分割したヘッダーをヘッダー格納領域204に格納する(S505)。
S507において、データ転送装置1は、データ転送が終了したと判定(S507にてYes)すると、データ転送処理を終了する。なお、データ転送装置1は、例えば、データ転送装置2からのデータ信号の転送を終了することを示す転送終了信号を受信することにより、データ転送が終了したと判断しても良い。
図6において、アドレステーブル209は、ヘッダーアドレス、データ管理アドレス(最上位ビット、およびデータアドレス)、有効性、およびデータサイズを格納している。また、図示していないが、アドレステーブル209には、ヘッダー識別情報と、データ識別情報も格納されているものとする。なお、図6において、ヘッダーアドレスとデータアドレスとは、説明の簡単化のため、10進数で表している。また、以下の説明において、アドレスごとに割り振られている格納領域の大きさは、8Byteであるものとする。ヘッダーの大きさは、16Byteであるものとする。ヘッダー格納領域の大きさは、128Byteであるものとする。データ格納領域の大きさは、16384Byteであるものとする。
図6(b)は、図6(a)の状態から、ヘッダーアドレス6〜13に格納されているヘッダーと、データアドレス740〜1729に格納されているデータとが取り出された後のアドレステーブル209の値を示している。さらに、図6(b)は、図6(a)の状態から、ヘッダーアドレス0〜7に新しいヘッダーと、データアドレス2000〜926に新しいデータとが格納された後のアドレステーブル209の値を示している。以下説明では、簡単化のため、例えば、ヘッダーアドレス6〜13に格納されているヘッダーと、データアドレス740〜1729に格納されているデータとが取り出されたことを、ヘッダーアドレス6〜13に対応するパケットが取り出されたという。
図7は、クレジット制御部15が受信パケット格納部12に格納されているパケットの中から、最古パケットを判定するときの処理内容を示すフローチャートである。
図8(a)、(b)は、受信パケット格納部12に格納されている最上位ビットが、全て同じ(1種類)であるときについて、クレジット制御部15が受信パケット格納部12に格納されているパケットの中から最古パケットを判定するときの処理の説明図である。
図9は、図7に示す処理において、クレジット制御部15が最古パケットを判定した後、最古パケットが取りだされたとき、クレジット値の更新要求を出力するまでの処理内容を示すフローチャートである。
S905において、最新追抜パケットよりも後に受信したパケットが取り出されているとき(S905にてYes)、クレジット制御部15は、最新追抜パケットを最新追抜パケットよりも後に受信したパケットに更新する(S906)。そして、クレジット制御部15は、S904の処理を実行する。
なお、データカウント部205において、最上位ビットをカウントしない場合には、S902の処理を省略する。
図10は、最古パケットの最上位ビットが0、最新パケットの最上位ビットが1のとき、クレジット制御部15がクレジット値の更新要求を出力するまでの処理を説明する説明図である。図10(a)〜(d)は、それぞれ、データ格納領域207に格納されているパケットを示す。図10において、受信順とは、データ転送装置2からパケットを受信した順序のことである。MSB=0とは、最上位ビット0に対応するパケットが含むデータのデータアドレス群に対応する。また、MSB=1とは、最上位ビット1に対応するパケットが含むデータのデータアドレス群に対応する。以下、図11〜図13においても同様であるものとする。なお、時間軸は、図10(a)→(b)→(c)→(d)の順である。
図11(a)は、最古パケットの最上位ビットが0、最新パケットの最上位ビットが0のとき、クレジット制御部15がクレジット値の更新要求を出力するときに、取り出し済みのパケットを示す図である。図11(b)は、最古パケットの最上位ビットが1、最新パケットの最上位ビットが1のとき、クレジット制御部15がクレジット値の更新要求を出力するときに、取り出し済みのパケットを示す図である。図11(c)は、最古パケットの最上位ビットが0、最新パケットの最上位ビットが1のとき、クレジット制御部15がクレジット値の更新要求を出力するときに、取り出し済みのパケットを示す図である。図11(d)は、最古パケットの最上位ビットが1、最新パケットの最上位ビットが0のとき、クレジット制御部15がクレジット値の更新要求を出力するときに、取り出し済みのパケットを示す図である。
図12は、最古パケットの最上位ビットが0、最新パケットの最上位ビットが0のとき、クレジット制御部15が最新追抜パケットを更新する処理を説明する説明図である。
図13(a)は、最古パケットの最上位ビットが0、最新パケットの最上位ビットが0のときについて、クレジット制御部15の最新追抜パケットの更新を説明する説明図である。図13(b)は、最古パケットの最上位ビットが1、最新パケットの最上位ビットが1のときについて、クレジット制御部15の最新追抜パケットの更新を説明する説明図である。図13(c)は、最古パケットの最上位ビットが0、最新パケットの最上位ビットが1のときについて、クレジット制御部15の最新追抜パケットの更新を説明する説明図である。図13(d)は、最古パケットの最上位ビットが1、最新パケットの最上位ビットが0のときについて、クレジット制御部15の最新追抜パケットの更新を説明する説明図である。
図13(a)〜(d)に示すように、クレジット制御部15は、最新追抜パケットよりも後に受信したパケット2、または3が受信パケット格納部12から取り出されたとき、取り出されたパケット2、または3を最新追抜パケットとする。なお、パケット2が取り出されたとき、クレジット制御部15は、パケット2を最新追抜パケットに設定する。次に、パケット3が取り出されたとき、クレジット制御部15は、パケット2よりもパケット3の方が転送元の装置から後に受信されたパケットであるので、パケット3を最新追抜パケットに設定する。
図14〜18を参照し、図9の処理の一実施例を説明する。なお、図14〜図17は、一連の処理におけるアドレステーブル209の格納値を示している。
また、図15(a)において、データアドレス設定部206は、前回パケットに含まれた2048Byteのデータをデータアドレス670に格納したとき、今回パケットに含まれるデータを格納するデータアドレスを670+2048/8=926にする。そして、アドレステーブル生成部208は、アドレステーブル209におけるヘッダーアドレス8に対応する有効性を1とする。
また、図16(b)において、データアドレス設定部206は、前回パケットに含まれた2000Byteのデータをデータアドレス926に格納したとき、今回パケットに含まれるデータを格納するデータアドレスを926+2000/8=1176にする。そして、アドレステーブル生成部208は、アドレステーブル209におけるヘッダーアドレス10に対応する有効性を1とする。
そして、図18(b)において、ヘッダーアドレス2とヘッダーアドレス6とに格納されたヘッダーを含むパケットが取り出されると、アドレステーブル生成部208は、それぞれに対応する有効性を0とする。そして、クレジット制御部15は、S902〜S904がYesと判定し、クレジット値の更新要求を出力する。
図19は、図1のデータ転送装置1の処理部13が、アドレス変換部131、ホストバス送信部132、およびホストバス受信部133を備えるものである。また、ホストバス送信部132と、ホストバス受信部133は、例えば、ホストバス3を介してメモリ4に接続されているものとする。また、ホストバス3は、要求受信部31、応答送信部32を有する。そして、メモリ4は、アドレス変換テーブル33を有する。
図19において、図1にはない機能について説明する。
ホストバス受信部133は、ホストバス3を介して送信される、メモリ4からのデータ処理の要求を含むパケットに対する応答を受信する。
応答送信部32は、メモリ4から出力されたデータ処理の要求を含むパケットに対する応答をホストバス受信部133に転送する。
なお、要求受信部31と、応答送信部32として、実施形態のデータ転送装置を用いても良い。
データ転送装置2から、データ転送装置1にメモリ4にデータを書き込みする要求するメモリライト要求パケットが送信される。データ転送装置1は、メモリライト要求パケットを受信する(S2001にてYes)と、パケット分割部201でヘッダーとデータとにパケットを分割して、それぞれをヘッダー格納領域204とデータ格納領域207に格納する(S2002)。なお、データ転送装置1は、メモリライト要求パケットを受信するまで、S2001の処理を繰り返す(S2001にてNo)。
そして、アドレス変換部からメモリ4上のアドレス変換テーブルを読み込むためのメモリリード要求を出力し(S2004)、ホストバス送信部132を介してホストバス3の要求受信部31にメモリリード要求を送信する(S2005)。
応答送信部32は、アドレス変換テーブル33を読み込むためのメモリリード要求に対する応答として、アドレス変換テーブル33に格納されている仮想アドレスと物理アドレスとの対応関係を示すアドレス変換エンティティを含む応答(応答パケット)をメモリ4から受信する。そして、応答送信部32は、ホストバス3を介して、アドレス変換エンティティを含む応答をホストバス受信部133に送信する(S2007)。
アドレス変換部131は、入力されたアドレス変換エンティティの情報を解釈し、仮想アドレスを物理アドレスに変換し、受信パケット格納部12に通知する(S2009)。
要求受信部31が受信したメモリライト要求パケットをメモリ4に転送することで、メモリライト要求パケットに含まれるデータは、メモリ4上のメモリライト要求パケットに保持された物理アドレスに対応する記憶領域に書き込まれる(S2013)。
3 ホストバス
11、21 受信部
12、22 受信パケット格納部
13、23 処理部
14、24 送信パケット格納部
15、25 クレジット制御部
16、26 送信部
31 要求受信部
32 応答送信部
33 アドレス変換テーブル
131 アドレス変換部
132 ホストバス送信部
133 ホストバス受信部
201 パケット分割部
202 ヘッダーカウント部
203 ヘッダーアドレス設定部
204 ヘッダー格納領域
205 データカウント部
206 データアドレス設定部
207 データ格納領域
208 アドレステーブル生成部
209 アドレステーブル
210 通知部
301 ヘッダークレジットカウント部
302 データクレジットカウント部
303 送信制御部
401、411 制御回路
402、412 記憶装置
403、413 通信インターフェイス
Claims (12)
- 転送元の装置から受信したパケットを格納し、該格納したパケットを受信した順序とは異なる順序で取り出すことができる受信パケット格納部と、
前記受信パケット格納部に格納されているパケットの中で、前記転送元の装置から最初に受信したパケットである最古パケットが取り出されたときであって、かつ、前記最古パケットよりも後に前記転送元の装置から受信したパケットである後続パケットの中で、前記最古パケットよりも先に前記受信パケット格納部から取り出された追抜パケットがあるとき、前記追抜パケットの中で、前記転送元の装置から受信した順序が最後である最新追抜パケットより先に受信した後続パケットが全て取り出された状態になると、前記受信パケット格納部が受信可能なデータの大きさを示すクレジット値の更新要求を出力するクレジット制御部と、
前記クレジット制御部から出力された前記クレジット値の更新要求を前記転送元の装置に送信する送信部と、
を備えることを特徴とするデータ転送装置。 - 前記パケットに含まれるデータを格納する記憶領域として、前記受信パケット格納部が有するデータ格納領域において、前記データを格納する記憶領域を指定するデータアドレスを設定するデータアドレス設定部と、
前記各パケットについて、前記データアドレス設定部で設定された、前記データアドレスと、前記データアドレスの指定する記憶領域に格納されたデータを識別するデータ識別情報とを関連付けて格納したアドレステーブルを生成するアドレステーブル生成部と、
前記受信パケット格納部からパケットが取り出されたとき、前記アドレステーブルを参照して、該パケットに含まれるデータのデータアドレスを抽出し、該抽出したデータアドレスを前記クレジット制御部に通知する通知部と、
を備え、
前記クレジット制御部は、
前記データ通知部からデータアドレスが通知されたとき、アドレステーブルを参照し、該通知されたデータアドレスが前記最古パケットに含まれたデータのデータアドレスと同じ場合、前記最古パケットが前記受信パケット格納部から取り出されたと判定する
ことを特徴とする請求項1に記載のデータ転送装置。 - 前記転送元の装置から前記パケットを受信するごとに、前記パケットに含まれるデータの大きさを前記各データアドレスに割り当てられた記憶領域の大きさで除算した値を、前記データ格納領域に設定された前記データアドレスの数と同じ値に、最上位ビットとして1bitを付加し、前記データアドレスの数の2倍の値までサイクリックにカウントするデータカウント部を備え、
前記データアドレス設定部は、
前記受信したパケットに含まれるデータのデータアドレスを、前記転送元の装置から前
回パケットを受信したとき、前記データカウント部でカウントされた値から最上位ビットを除いた値に設定し、
前記アドレステーブル生成部は、
前記各パケットについて、前記最上位ビットと、前記データアドレスと、前記データ識別情報とを関連付けて格納したアドレステーブルを生成し、
前記通知部は、
前記受信パケット格納部からパケットが取り出されたとき、前記アドレステーブルを参照して、該パケットに含まれるデータの最上位ビットとデータアドレスとを抽出し、該抽出した最上位ビットとデータアドレスとを前記クレジット制御部に通知し、
前記クレジット制御部は、
前記受信パケット格納部に格納されている各データのデータアドレスと関連付けられた最上位ビットが1種類のとき、前記データアドレスが一番古いデータを含むパケットを最古パケットと判定し、
前記受信パケット格納部に格納されている各データのデータアドレスと関連付けられた最上位ビットが2種類のとき、前記転送元の装置から最後に受信した最新パケットのデータアドレスに関連付けられた最上位ビットと異なる最上位ビットが関連付けられた前記データアドレスの中で、前記データアドレスが一番古いデータを含むパケットを最古パケットと判定し、
前記データ通知部から最上位ビットとデータアドレスとが通知されたとき、アドレステーブルを参照し、該通知された最上位ビットとデータアドレスとが前記最古パケットに含まれたデータの最上位ビットとデータアドレスとに同じ場合、前記最古パケットが前記受信パケット格納部から取り出されたと判定する
ことを特徴とする請求項2に記載のデータ転送装置。 - 前記クレジット制御部は、
前記クレジット値の更新要求として、前記最古パケットに含まれるデータのデータアドレスから、次にデータが格納されているデータアドレスまでに関連付けられた記憶領域の大きさに比例した値であるデータのクレジット更新値を、前記転送元の装置が有するデータのクレジット値に加算させる要求を出力する
ことを特徴とする請求項2または3に記載のデータ転送装置。 - 前記パケットに含まれるヘッダーを格納する記憶領域として、前記受信パケット格納部が有するヘッダー格納領域において、前記ヘッダーを格納する記憶領域を指定するヘッダーアドレスを設定するヘッダーアドレス設定部を備え、
前記アドレステーブル生成部は、
前記各パケットについて、前記ヘッダーアドレス設定部で設定された、前記ヘッダーアドレスと、前記ヘッダーアドレスの指定する記憶領域に格納されたヘッダーを識別するヘッダー識別情報と、前記データアドレス設定部で設定された、前記データアドレスと、前記データ識別情報とを関連付けて格納したアドレステーブルを生成する
ことを特徴とする請求項2〜4のいずれか一つに記載のデータ転送装置。 - 前記転送元の装置から前記パケットを受信するごとに、前記ヘッダー格納領域に設定された前記ヘッダーアドレスの数と同じ値まで、前記受信したヘッダーの大きさに比例した値をサイクリックにカウントするヘッダーカウント部を備え、
前記ヘッダーアドレス設定部は、
前記受信したパケットに含まれるヘッダーのヘッダーアドレスを、前記転送元の装置から前回パケットを受信したとき、前記ヘッダーカウント部でカウントされた値に設定する
ことを特徴とする請求項5に記載のデータ転送装置。 - 前記クレジット制御部は、
前記クレジット値の更新要求として、前記最古パケットに含まれるヘッダーのヘッダーアドレスから、次にヘッダーが格納されているヘッダーアドレスまでに関連付けられたヘッダーの数であるヘッダーのクレジット更新値を、前記転送元の装置が有するヘッダーのクレジット値に加算させる要求を出力する
ことを特徴とする請求項5または6に記載のデータ転送装置。 - パケットの取り出しが可能になった時に、前記アドレステーブルを参照し、前記取り出し要求されたパケットのヘッダーとデータとを抽出し、該抽出したヘッダーとデータとを含むパケットを生成し、前記転送先の装置に送信する処理部を備えることを特徴とする請求項5〜7のいずれか一つに記載のデータ転送装置。
- 転送先の装置へ送信するパケットを格納する送信パケット格納部と、
前記転送先の装置から受信した、前記転送先の装置が受信可能なデータの大きさに比例した値であるデータのクレジット更新値をカウントしてデータのクレジット値を求めるデータクレジットカウント部と、
前記転送先の装置から受信した、前記転送先の装置が受信可能なヘッダーの数であるヘッダーのクレジット更新値をカウントしてヘッダーのクレジット値を求めるヘッダークレジットカウント部と、
前記データのクレジット値が前記送信するパケットに含まれるデータの大きさ以上のデータを送信可能であることを示し、かつ、前記ヘッダーのクレジット値が1以上であるとき、前記送信パケット格納部からパケットを取り出して、送信部に出力する送信制御部と、
を備えることを特徴とする請求項1〜8のいずれか一つに記載のデータ転送装置。 - 転送元の装置から受信したパケットを、該パケットを格納する受信パケット格納部に格納し、
前記受信パケット格納部に格納したパケットを取り出し可能になった順序で取り出し、
前記受信パケット格納部に格納されているパケットの中で、前記転送元の装置から最初に受信したパケットである最古パケットが取り出されたときであって、かつ、前記最古パケットよりも後に前記転送元の装置から受信したパケットである後続パケットの中で、前記最古パケットよりも先に前記受信パケット格納部から取り出された追抜パケットがあるとき、前記追抜パケットの中で、前記転送元の装置から受信した順序が最後である最新追抜パケットより先に受信した後続パケットが全て取り出された状態になると、前記受信パケット格納部が受信可能なデータの大きさを示すクレジット値の更新要求を出力する、
ことを特徴とするデータ転送方法。 - 転送元の装置から受信したパケットを、該パケットを格納する受信パケット格納部に格納し、
前記受信パケット格納部に格納したパケットを取り出し可能になった順序で取り出し、
前記受信パケット格納部に格納されているパケットの中で、前記転送元の装置から最初に受信したパケットである最古パケットが取り出されたときであって、かつ、前記最古パケットよりも後に前記転送元の装置から受信したパケットである後続パケットの中で、前記最古パケットよりも先に前記受信パケット格納部から取り出された追抜パケットがあるとき、前記追抜パケットの中で、前記転送元の装置から受信した順序が最後である最新追抜パケットより先に受信した後続パケットが全て取り出された状態になると、前記受信格納部が受信可能なデータの大きさを示すクレジット値の更新要求を出力する、
処理をコンピュータに実行させることを特徴とするデータ転送プログラム。 - 転送元の装置から受信したパケットを格納し、該格納したパケットを受信した順序とは異なる順序で取り出すことができる受信パケット格納部と、
前記受信パケット格納部に格納されているパケットの中で、前記転送元の装置から最初に受信したパケットである最古パケットが取り出されたとき、前記受信パケット格納部が受信可能なデータの大きさを示すクレジット値の更新要求を出力するクレジット制御部と、
前記クレジット制御部から出力された前記クレジット値の更新要求を前記転送元の装置に送信する送信部と、
前記パケットに含まれるデータを格納する記憶領域として、前記受信パケット格納部が有するデータ格納領域において、前記データを格納する記憶領域を指定するデータアドレスを設定するデータアドレス設定部と、
前記各パケットについて、前記データアドレス設定部で設定された、前記データアドレスと、前記データアドレスの指定する記憶領域に格納されたデータを識別するデータ識別情報とを関連付けて格納したアドレステーブルを生成するアドレステーブル生成部と、
前記受信パケット格納部からパケットが取り出されたとき、前記アドレステーブルを参照して、該パケットに含まれるデータのデータアドレスを抽出し、該抽出したデータアドレスを前記クレジット制御部に通知する通知部と、
前記転送元の装置から前記パケットを受信するごとに、前記パケットに含まれるデータの大きさを前記各データアドレスに割り当てられた記憶領域の大きさで除算した値を、前記データ格納領域に設定された前記データアドレスの数と同じ値に、最上位ビットとして1bitを付加し、前記データアドレスの数の2倍の値までサイクリックにカウントするデータカウント部と、
を備え、
前記データアドレス設定部は、
前記受信したパケットに含まれるデータのデータアドレスを、前記転送元の装置から前
回パケットを受信したとき、前記データカウント部でカウントされた値から最上位ビットを除いた値に設定し、
前記アドレステーブル生成部は、
前記各パケットについて、前記最上位ビットと、前記データアドレスと、前記データ識別情報とを関連付けて格納したアドレステーブルを生成し、
前記通知部は、
前記受信パケット格納部からパケットが取り出されたとき、前記アドレステーブルを参照して、該パケットに含まれるデータの最上位ビットとデータアドレスとを抽出し、該抽出した最上位ビットとデータアドレスとを前記クレジット制御部に通知し、
前記クレジット制御部は、
前記受信パケット格納部に格納されている各データのデータアドレスと関連付けられた最上位ビットが1種類のとき、前記データアドレスが一番古いデータを含むパケットを最古パケットと判定し、
前記受信パケット格納部に格納されている各データのデータアドレスと関連付けられた最上位ビットが2種類のとき、前記転送元の装置から最後に受信した最新パケットのデータアドレスに関連付けられた最上位ビットと異なる最上位ビットが関連付けられた前記データアドレスの中で、前記データアドレスが一番古いデータを含むパケットを最古パケットと判定し、
前記データ通知部から最上位ビットとデータアドレスとが通知されたとき、アドレステーブルを参照し、該通知された最上位ビットとデータアドレスとが前記最古パケットに含まれたデータの最上位ビットとデータアドレスとに同じ場合、前記最古パケットが前記受信パケット格納部から取り出されたと判定する
ことを特徴とするデータ転送装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012191316A JP5987560B2 (ja) | 2012-08-31 | 2012-08-31 | データ転送装置、データ転送方法およびデータ転送プログラム |
EP13179077.6A EP2704023A3 (en) | 2012-08-31 | 2013-08-02 | Data transfer apparatus, data transfer method, and data transfer program |
US13/960,834 US20140064300A1 (en) | 2012-08-31 | 2013-08-07 | Data transfer apparatus, data transfer method, and computer-readable recording medium storing data transfer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012191316A JP5987560B2 (ja) | 2012-08-31 | 2012-08-31 | データ転送装置、データ転送方法およびデータ転送プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014049936A JP2014049936A (ja) | 2014-03-17 |
JP5987560B2 true JP5987560B2 (ja) | 2016-09-07 |
Family
ID=48915907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012191316A Active JP5987560B2 (ja) | 2012-08-31 | 2012-08-31 | データ転送装置、データ転送方法およびデータ転送プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20140064300A1 (ja) |
EP (1) | EP2704023A3 (ja) |
JP (1) | JP5987560B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9501222B2 (en) * | 2014-05-09 | 2016-11-22 | Micron Technology, Inc. | Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction |
JP5892348B1 (ja) * | 2014-11-20 | 2016-03-23 | パナソニックIpマネジメント株式会社 | 無線通信装置およびその制御方法 |
US20220413704A1 (en) * | 2021-06-25 | 2022-12-29 | Intel Corporation | Dynamically scalable and partitioned copy engine |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0821969B2 (ja) | 1988-09-13 | 1996-03-04 | 日本電気株式会社 | 伝送制御方法 |
JP2929991B2 (ja) | 1996-01-29 | 1999-08-03 | 日本電気株式会社 | 最適化クレジット制御方法 |
US6032272A (en) * | 1997-09-05 | 2000-02-29 | Nokia Telecommunications, Oy | Method and apparatus for performing packet based policing |
US7342936B2 (en) * | 2002-06-17 | 2008-03-11 | Integrated Device Technology, Inc. | Method of performing deficit round-robin scheduling and structure for implementing same |
US6904507B2 (en) * | 2002-09-30 | 2005-06-07 | Agilent Technologies, Inc. | Buffer management architecture and method for an infiniband subnetwork |
JP3807372B2 (ja) * | 2003-01-28 | 2006-08-09 | 日本電気株式会社 | クレジットによるフロー制御システム及びその方法 |
US7894340B2 (en) * | 2005-02-14 | 2011-02-22 | France Telecom | Method and a device for flow management in a packet-switched telecommunications network |
US20070177498A1 (en) * | 2006-02-01 | 2007-08-02 | International Business Machines Corporation | Method and apparatus for implementing speculative credit flow control |
US7698478B2 (en) * | 2006-09-19 | 2010-04-13 | Apple Inc. | Managed credit update |
US7783823B2 (en) * | 2007-07-31 | 2010-08-24 | Hewlett-Packard Development Company, L.P. | Hardware device data buffer |
US8213308B2 (en) * | 2008-09-11 | 2012-07-03 | Juniper Networks, Inc. | Methods and apparatus for defining a flow control signal related to a transmit queue |
US8045472B2 (en) * | 2008-12-29 | 2011-10-25 | Apple Inc. | Credit management when resource granularity is larger than credit granularity |
JP5732806B2 (ja) * | 2010-10-15 | 2015-06-10 | 富士通株式会社 | データ転送装置及びデータ転送方法 |
-
2012
- 2012-08-31 JP JP2012191316A patent/JP5987560B2/ja active Active
-
2013
- 2013-08-02 EP EP13179077.6A patent/EP2704023A3/en not_active Withdrawn
- 2013-08-07 US US13/960,834 patent/US20140064300A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP2704023A2 (en) | 2014-03-05 |
JP2014049936A (ja) | 2014-03-17 |
US20140064300A1 (en) | 2014-03-06 |
EP2704023A3 (en) | 2014-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI684099B (zh) | 剖析快取替代 | |
EP3916536A1 (en) | Data processing method and nvme storage device | |
JP6763984B2 (ja) | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 | |
JP3641675B2 (ja) | 分割バッファアーキテクチュア | |
EP4220415A2 (en) | Method and apparatus for compressing addresses | |
US9280290B2 (en) | Method for steering DMA write requests to cache memory | |
KR100528967B1 (ko) | 가변 길이의 패킷 저장을 위한 메모리 관리 장치 및 방법 | |
EP1528478A1 (en) | Generalized addressing scheme for remote direct memory access enabled devices | |
WO2016093895A1 (en) | Generating and/or employing a descriptor associated with a memory translation table | |
WO2011004511A1 (ja) | アドレス変換装置 | |
JP7074839B2 (ja) | パケット処理 | |
CN105745640A (zh) | 访问文件的方法、系统和主机 | |
CN110457251B (zh) | 一种多处理器间的数据通信方法及装置 | |
JP5987560B2 (ja) | データ転送装置、データ転送方法およびデータ転送プログラム | |
KR20150129808A (ko) | 메모리 노드를 포함하는 분산형 메모리 시스템을 위한 방법 및 장치 | |
CN115858160B (zh) | 远程直接内存访问虚拟化资源分配方法及装置、存储介质 | |
WO2021062982A1 (zh) | 管理hmb内存的方法、装置、计算机设备及存储介质 | |
US9727521B2 (en) | Efficient CPU mailbox read access to GPU memory | |
KR20170072645A (ko) | 프로세서 및 프로세서에서 데이터를 처리하는 방법 | |
CN106294191A (zh) | 处理表的方法、访问表的方法和装置 | |
CN105765542B (zh) | 访问文件的方法、分布式存储系统和存储节点 | |
WO2019095942A1 (zh) | 一种数据传输方法及通信设备 | |
WO2022028165A1 (zh) | 缓存管理方法、终端以及存储介质 | |
JP5772132B2 (ja) | データ転送装置、データ転送方法および情報処理装置 | |
CN112799978A (zh) | 缓存设计管理方法、装置、设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150512 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160325 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160520 |
|
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: 20160712 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160725 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5987560 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |