JP2013069063A - 通信ユニット及び情報処理方法 - Google Patents

通信ユニット及び情報処理方法 Download PDF

Info

Publication number
JP2013069063A
JP2013069063A JP2011206253A JP2011206253A JP2013069063A JP 2013069063 A JP2013069063 A JP 2013069063A JP 2011206253 A JP2011206253 A JP 2011206253A JP 2011206253 A JP2011206253 A JP 2011206253A JP 2013069063 A JP2013069063 A JP 2013069063A
Authority
JP
Japan
Prior art keywords
identification information
communication
dma buffer
packet
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.)
Pending
Application number
JP2011206253A
Other languages
English (en)
Inventor
Kentaro Kakiuchi
健太郎 垣内
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
Priority to JP2011206253A priority Critical patent/JP2013069063A/ja
Publication of JP2013069063A publication Critical patent/JP2013069063A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】それぞれ記憶手段を備えた複数のプロセッサを備えた情報処理装置において、プロセッサがリモートメモリにアクセスする回数を低減させ、処理効率を向上させる。
【解決手段】それぞれメモリ2を備えた複数のCPU1を備えた情報処理装置に実装されたNIC3が、次の構成を備える。すなわち、NIC3は、通信に関する識別情報と、複数のCPU1のうち当該通信についてのデータ処理を行うCPU1が用いるメモリ2との対応関係を記憶する振り分けテーブル8を備える。そして、NIC3は、受信したデータから当該データの通信に関する識別情報を取得し、振り分けテーブル8に記憶された対応関係に基づいて、複数のメモリ2のうち、取得した識別情報に対応するCPU1が備えるメモリ2を特定し、特定したメモリ2に対して、受信したデータの転送を行う。
【選択図】 図2

Description

本発明は、情報処理装置のデータ通信において受信したデータを処理する技術に関する。
プロセッサ及び当該プロセッサに対応付けられた記憶手段の対を複数有するNUMA(Non-Uniform Memory Access)アーキテクチャが存在する。かかるアーキテクチャを適応した技術の一例では、CPU(Central Processing Unit)に対応付けられたメモリのDMA(Direct Memory Access)バッファが複数設けられた構成を有する情報処理装置において、次のような処理を行う。すなわち、本技術例では、NIC(Network Interface Card)において受信したパケットを、CPUに対応付けられたDMAバッファに転送するときに、DMA転送開始から一定の時間を経過した後又はDMA転送したフレームが一定のフレームに達すると、DMA転送先を別のDMAバッファに切り替える。こうすることで、複数のDMAバッファへDMA転送が分散され、各DMAバッファに対応するCPUでの並行処理が可能となる。
特開2008−299439号公報
しかしながら、かかる技術例を適用した場合、情報処理装置において受信したデータが、必ずしもそのデータの処理を行うプロセッサに対応付けられた記憶手段に転送されるとは限らない。ここで、データ処理を行うプロセッサに対応付けられた記憶手段以外の他の記憶手段(すなわち、当該プロセッサからみていわゆるリモートメモリとなる)に対して受信データが転送されると、当該プロセッサは、リモートメモリに対してアクセスを行うこととなる。かかるリモートメモリへのアクセスは、ローカルメモリに対するアクセスと比べ、処理効率が悪い。
本技術は、1つの側面において、プロセッサ及び当該プロセッサに対応付けられた記憶手段の対を複数有する情報処理装置において、プロセッサがリモートメモリにアクセスする回数を低減させ、情報処理装置全体としての処理効率を向上させることを目的とする。
本技術における1つの側面では、それぞれ記憶手段を備えた複数のプロセッサを備えた情報処理装置の通信部として機能し得る通信ユニットが、通信に関する識別情報と、前記複数のプロセッサのうち該通信についてのデータ処理を行うプロセッサが用いる記憶手段との対応関係を記憶する記憶手段を備える。そして、通信ユニットは、受信したデータから該データの通信に関する識別情報を取得し、記憶された前記対応関係に基づいて、前記複数のプロセッサが備える複数の記憶手段のうち、取得した該識別情報に対応するプロセッサが備える記憶手段を特定し、特定した該記憶手段に対して、受信した前記データの転送を行う。
本技術における1つの側面によれば、プロセッサ及び当該プロセッサに対応付けられた記憶手段の対を複数有する情報処理装置において、プロセッサがリモートメモリにアクセ
スする回数を低減させ、情報処理装置全体としての処理効率を向上させることができる。
従来のメモリアクセスのアーキテクチャをNUMAモデルに適用した情報処理装置の説明図である。 情報処理装置のハードウェア構成の一例の説明図である。 情報処理装置のソフトウェア構成の一例の説明図である。 振り分けテーブルの構造の一例の説明図である。 DMAバッファの構造の一例及びDMAバッファ管理テーブルの構造の一例の説明図である。 DMAバッファの使用状態の一例の説明図である。 情報処理装置におけるノードの態様の一例及びノード管理テーブルの構造の一例の説明図である。 DMAバッファ管理テーブル初期化処理の一例のフローチャートである。 振り分けテーブル設定指示処理の呼び出し処理の一例を示すフローチャートである。 振り分けテーブル設定指示処理の一例を示すフローチャートである。 振り分けテーブル設定処理の一例を示すフローチャートである。 振り分け処理の一例を示すフローチャートである。 振り分け処理の具体例を示す説明図である。 クライアント・サーバ構成におけるクライアント側の実行態様の一構成例における全体処理を示す説明図である。 クライアント・サーバ構成におけるサーバ側の実行態様の一構成例における全体処理を示す説明図である。 CPUの割り当てが移動した例を示す説明図である。
[1.実施形態の概要]
本明細書で説明する技術は、それぞれ記憶手段を備えた複数のプロセッサを備えた情報処理装置において、各プロセッサが自身に対応付けられた記憶手段にアクセスするアーキテクチャ(NUMAモデル)におけるデータ処理に関するものである。具体的には、情報処理装置が備える通信ユニットがデータを受信したときに、データ通信における識別情報に応じて、受信データを、当該受信データの処理を行うプロセッサに対応付けられた記憶手段に転送するようにする。こうすることにより、各プロセッサがリモートメモリにアクセスする回数を低減させ、情報処理装置全体としての処理効率を向上させることができる。
ここで、かかる技術に関連する背景技術の一例について説明する。従来、複数のプロセッサを備えた情報処理装置におけるメモリアクセスのアーキテクチャは、複数のプロセッサがノースブリッジを介して1つのメモリを共有するモデルが一般的であった。しかし、近年におけるメモリアクセスのアーキテクチャは、NUMAモデルに移行しつつある。
図1は、従来のメモリアクセスのアーキテクチャをNUMAモデルに適用した情報処理装置の一例の説明図である。
かかる情報処理装置の例では、CPU91a及びCPU91bが、バスを介してノースブリッジ913に接続されている。CPU91aにはメモリ92aが対応付けられ、CPU91bにはメモリ92bが対応付けられている。さらに、サウスブリッジ914に、バスを介してNIC93a及びNIC93bが接続されている。NIC93a及びNIC93bはそれぞれ、LAN(Local Area Network)を介して外部の情報処理装置等(図示省略)と接続されており、TCPパケットやUDPパケットのデータを受信する。また、O
S(Operating System)921上では、アプリケーション931a及びアプリケーション931bが動作している。ここでは、CPU91aがアプリケーション931aを処理し、CPU91bがアプリケーション931bを処理しているものとする。なお、本明細書の説明において、例えば、単にCPU91と表記した場合には、CPU91a及びCPU91bの少なくともいずれか一方を示すものとする。以下の説明において、他の構成要素についても全て同様である。
本情報処理装置の例では、メモリ92aに、NIC93で受信したパケットが転送されるDMAバッファ94aが設けられている。さらに、メモリ92aは、DMAバッファ94aにパケットが転送されると、割り込みハンドラによって当該パケットのデータ内容がコピーされるカーネル受信バッファ95aを備える。また、メモリ92bも同様に、DMAバッファ94b及びカーネル受信バッファ95bを備える。
また、NIC93aは、送受信するパケットを格納する送受信バッファ96a及びDMAバッファ94aへのパケット転送の制御を行うDMAコントローラ97aを備える。同様に、NIC93bも、送受信バッファ96b及びDMAコントローラ97bを備える。
ここで、本情報処理装置のNIC93a及びNIC93bは、受信したパケットをどのDMAバッファ94に転送するかを適切に制御する機構を有していない。このため、パケットがどのCPU91で処理されるものであるかに関係なく、特定のDMAバッファ94にパケットの転送が集中する現象が発生し得る。
例えば、NIC93aがパケットを受信する(1-1)。このとき、DMAコントローラ97aが、送受信バッファ96aに格納した当該受信パケットを、メモリ92bのDMAバッファ94bに転送するとする(1-2)。なお、より具体的には、NIC93aは、MSI(Message Signaled Interrupt)を、CPU91ごとに設けられた割り込み制御レジスタ(図示省略)に送信する。同様に、NIC93bも、パケットを受信すると(2-1)、送受信バッファ96bに格納した当該受信パケットを、メモリ92bのDMAバッファ94bに転送する(2-2)。
かかる場合、いずれの受信パケットも、割り込みハンドラの処理によって、カーネル受信バッファ95bにコピーされる(1-3,2-3)。カーネル受信バッファ95bにパケットのデータ内容がコピーされると、受信パケットのプロトコルの階層(データリンク層、IP層、TCP層等)ごとにプロトコル処理がなされ、最終的には、アプリケーション931が当該受信パケットを受信し、処理することとなる(1-4,2-4)。これらの一連のデータ受信処理は、受信パケットの処理を行うアプリケーション931を実行するCPU91が行う。
ここで、受信したパケットがCPU91aによって処理されるものであるときには、CPU91aは、CPU91bを介してリモートメモリであるメモリ92bにアクセスし、割り込み制御処理を行って、メモリ92bのDMAバッファ94bのパケットをカーネル受信バッファ95bにコピーすることとなる。このようにリモートメモリに対してアクセスすることは、ローカルメモリに対するアクセスよりも時間がかかり、処理効率が低下する。
このため、本明細書で説明する実施形態においては、複数のメモリのそれぞれに、受信パケットを書き込むDMAバッファを設けた構成において、通信における識別情報に応じて、受信データを当該受信データの処理を行うCPUに対応付けられたDMAバッファに転送する機能を、NICに設ける。これにより、リモートメモリに対するアクセス回数を低減させ、処理効率を向上させる。以下、かかる技術を実現する実施形態について詳細に
説明する。
[2.ハードウェア構成]
図2は、本実施形態に係る情報処理装置のハードウェア構成図である。
本実施形態に係る情報処理装置は、プロセッサの一例であるCPU1a及びCPU1bが、バスを介してノースブリッジ13に接続されている。CPU1aはメモリ2aを備え、CPU1bはメモリ2bを備えている。本実施形態においては、より具体的には、CPU1aにはメモリ2aが対応付けられ、CPU1bにはメモリ2bが対応付けられている。さらに、サウスブリッジ14に、バスを介し、通信ユニットの一例であるNIC3a及びNIC3bが接続されている。NIC3a及びNIC3bはそれぞれ、通信ネットワーク(例えばLAN等である)を介して外部の情報処理装置等と接続されており、外部の情報処理装置等からデータ(例えば、TCPパケットやUDPパケットであり、以下、パケット通信を行うものとして説明をする)を受信する。CPU1a及びCPU1bは、本実施例ではいずれもクアッドコアであるものとするが、これに限るものではない。また、メモリ2a及びメモリ2bは、例えばRAM(Random Access Memory)等である。
メモリ2aは、DMAバッファ4a及びカーネル受信バッファ5aを備える。一方、メモリ2bは、DMAバッファ4b及びカーネル受信バッファ5bを備える。さらに、メモリ2aは、ノード管理テーブル6を有する。ノード管理テーブル6は、各CPU1に対応付けられたメモリ2に関する情報を保持するテーブルであり、メモリ2aに限らず、本情報処理装置のいずれかのメモリに1つ存在すればよい。ノード管理テーブル6の構造例については後述する。ここで、DMAバッファ4には、それぞれ一意に識別可能なDMAバッファ番号が割り振られている。本情報処理装置では、DMAバッファ4aのDMAバッファ番号が1であり、DMAバッファ4bのDMAバッファ番号が2であるものとする。このDMAバッファ番号は、後述するノード番号と一致する。
NIC3aは、自装置が備える記憶手段において、送受信バッファ7a、振り分けテーブル8a及びDMAバッファ管理テーブル9aを備える。
送受信バッファ7aは、NIC3aにおいて送受信するパケットを格納するバッファである。
振り分けテーブル8aは、受信したパケットの振り分け先の特定に用いる、通信に関する識別情報と、当該識別情報で識別される通信で受信するパケットの処理を行うCPU1に対応付けられたメモリ2のDMAバッファ番号との対応関係(以下、本実施形態の説明において、この対応関係を含んだ情報を振り分け情報という)が設定されるテーブルである。ここで、本実施形態において、識別情報とは、パケットの通信に用いるポート番号及びプロトコル種別を含む情報であり、その詳細については後述する。
DMAバッファ管理テーブル9aは、各メモリ2のDMAバッファ4において次のデータを書き込むべき場所を特定するアドレスが設定されるテーブルである。
また、NIC3aは、処理を実行する制御部(図の破線で囲われた部分)としてそれぞれ機能する、振り分けテーブル設定処理部10a、振り分け処理部11a及びDMAコントローラ12aを備える。
振り分けテーブル設定処理部10aは、OSによる指示に基づき、識別情報と、当該識別情報で識別される通信で受信するパケットの処理を行うCPU1に対応付けられたメモリ2のDMAバッファ番号とを対応付けた振り分け情報を、振り分けテーブル8aに設定する。
振り分け処理部11aは、NIC3aにおいてパケットを受信したときに、振り分けテ
ーブル8aの振り分け情報を参照して、当該パケットを転送するDMAバッファ4を特定する。
DMAコントローラ12aは、振り分け処理部11aが特定したDMAバッファ4に対して受信パケットを転送する。このとき、DMAコントローラ12aは、DMAバッファ管理テーブル9aを参照し、DMAバッファ4における書き込み場所を特定した上で、DMAバッファ4に対してパケットを転送し、書き込みをする制御を行う。
なお、これらの機構は、例えばFPGA(Field Programmable Gate Array)等の集積回路である。各機構の具体的な処理内容については後述する。
NIC3bも同様に、送受信バッファ7b、振り分けテーブル8b及びDMAバッファ管理テーブル9b、並びに、振り分けテーブル設定処理部10b、振り分け処理部11b及びDMAコントローラ12bを備える。
[3.ソフトウェア構成]
図3は、本実施形態に係る情報処理装置で実現されるソフトウェア構成図である。この図3は、図2に示したCPU1a又はCPU1bのいずれかにおいて実行されるソフトウェアの処理の機能をブロック図として示している。
本情報処理装置では、OS21が、ネットワーク処理部22、スケジューリング処理部23、振り分けテーブル設定指示部24、DMAバッファ管理テーブル初期化部25を備える。また、本実施形態では、OS21の上で、アプリケーション31a及びアプリケーション31bが動作している。
ネットワーク処理部22は、パケット通信に関連する様々な処理を行う。その具体例については後述する。
スケジューリング処理部23は、アプリケーション31の処理を行うCPU1の割り当てを移動させる。例えば、スケジューリング処理部23は、CPU1の割当てを、負荷の高いCPU1からより負荷の低い他のCPU1に移動させる。
振り分けテーブル設定指示部24は、ネットワーク処理部22の処理によってパケット通信に関する識別情報が決定したときに、当該識別情報を振り分けテーブル8に設定する指示を、NIC3の振り分けテーブル設定処理部10に送信する。また、振り分けテーブル設定指示部24は、スケジューリング処理部23がアプリケーション31の処理を行うCPU1の割当ての移動を行ったときに、そのアプリケーション31が行うパケット通信の識別情報で識別される通信で受信したパケットの振り分け情報を振り分けテーブル8に設定する指示を、NIC3の振り分けテーブル設定処理部10に送信する。換言すれば、振り分けテーブル設定指示部24は、すでに決定している識別情報で識別される通信で受信したデータの処理を行うCPU1の割当てが移動したときに、新たに当該処理を行うCPU1に対応付けられたメモリ2のDMAバッファ4に受信パケットが転送されるように、振り分け情報を振り分けテーブル8に設定し直す指示を送信する。
DMAバッファ管理テーブル初期化部25は、OS21が起動されて初期化されたときに、DMAバッファ管理テーブル9のDMAバッファ番号を設定する。
[4.データ構造例]
次に、前述した本情報処理装置のNIC3及びメモリ2において設定される各種データの構造例等について説明する。
図4は、NIC3が備える振り分けテーブル8の構造例を示す。振り分けテーブル8は、受信したパケットをどのDMAバッファ4に転送するべきかを、通信における識別情報
毎に特定するのに用いられる振り分け情報が設定されるテーブルであり、識別情報、DMAバッファ番号及び時刻情報のカラムを有する。本実施形態において、識別情報は、前述したように、具体的には、ポート番号及びプロトコル種別のカラムを有する。
ポート番号は、パケットの送信先である本情報処理装置で動作するアプリケーション31が用いるポート番号である。プロトコル種別は、当該パケットのデータに適用されたプロトコル(TCP/UDP)を示す。
DMAバッファ番号は、識別情報で識別される通信で受信するデータを転送して書き込むDMAバッファ4を一意に特定するための番号である。時刻情報は、識別情報やDMAバッファ番号を本テーブルに書き込んだタイミングを示す情報である。
図5は、メモリ2に包含されているDMAバッファ4の構造例を示すとともに、NIC3が備えるDMAバッファ管理テーブル9の構造例を示している。
DMAバッファ4は、メモリ2毎に備えられており、さらに、NIC3毎にその領域が分けられている。メモリ2aの例を用いて説明すると、メモリ2aに包含されているDMAバッファ4aは、先頭アドレス[adr11]から領域サイズ[s11]の範囲の領域がNIC3a用の領域であり、先頭アドレス[adr21]から領域サイズ[s21]の範囲の領域がNIC3b用の領域である。メモリ2bのDMAバッファ4bも同様である。
一方で、DMAバッファ管理テーブル9は、NIC3毎にそれぞれ保持されている。DMAバッファ管理テーブル9は、それぞれ自テーブルが備えられたNIC3が用いるDMAバッファ4の領域情報及び次にアクセスするべきアドレスを特定する情報を保持しており、DMAバッファ番号、先頭アドレス、領域サイズ、書き込みアドレス及び読み出しアドレスのカラムを有する。なお、DMAバッファ管理テーブル9では、いずれかのDMAバッファ番号がデフォルト設定されている。このデフォルト設定は、受信パケットの転送先のDMAバッファ4を特定できないときに受信パケットを転送するDMAバッファ4を予め決めておくものである。
なお、図6は、DMAバッファ4の使用状態について図示したものである。第1段階(初期状態)ではDMAバッファ4が空の状態であるため、書き込みアドレス及び読み出しアドレスは、先頭アドレスと一致している。その後、第2段階として、例えば、NIC3がDMAバッファ4に4つのパケットを転送した場合、読み出しアドレスは引き続き先頭アドレスと同じである一方、書き込みアドレスは、先頭アドレスに対して4つのパケットのデータサイズを加算したアドレスとなる。さらに、第3段階として、例えば、アプリケーション31が当該4つのパケットを全て読み出した場合、読み出しアドレスは、4つのパケットのデータサイズ分だけ進むこととなり、結果として書き込みアドレスと同じとなる。また、第4段階として、NIC3がさらに10個のパケットを転送した場合であって、当該10個のパケットのデータサイズが書き込みアドレスからのDMAバッファ4の領域サイズを超えてしまう場合、NIC3は、再び先頭アドレスからパケットのデータ内容を書き込む。この場合、図に示すように、書き込みアドレスのほうが読み出しアドレスよりも前のアドレスとなる。
図7は、情報処理装置におけるノードの態様例について示すとともに、メモリ2aに保持されているノード管理テーブル6の構造例を示している。
本情報処理装置では、CPU1とこれに対応付けられたメモリ2の対を1つのノードとして取り扱う。例えば、CPU1a及びメモリ2aの対がノード番号1のノードであり、CPU1b及びメモリ2bの対がノード番号2のノードである。
そして、ノード管理テーブル6は、DMAバッファ管理テーブル9を初期化する際に、
どのDMAバッファ4がどのノードに属するかを特定する(最終的にはDMAバッファ番号を特定する)ために用いられるテーブルである。ノード管理テーブル6は、ノード番号、メモリの先頭アドレス及びメモリの領域サイズのカラムを有する。なお、CPU1aの例で説明すると、メモリ2aの先頭アドレスが[ADR1]であり、メモリ2aのサイズが[LEN1]である。
[5.OS及びNICにおける処理の詳細]
次に、本情報処理装置のOS21及びNIC3において実行される処理について、図8〜図13を参照しながら説明する。
<5.1 DMAバッファ管理テーブル初期化処理(OS)>
図8は、OS21が備えるDMAバッファ管理テーブル初期化部25が実行する処理を示すフローチャートである。この処理は、OS21の初期化時に実行される。なお、この処理が実行される前提として、先にデバイスドライバ等が初期化され、DMAバッファ管理テーブル9に、DMAバッファ番号以外の情報(すなわち、各DMAバッファの先頭アドレス、領域サイズ、書き込みアドレス及び読み出しアドレス)のみが設定された状態となっている。DMAバッファ管理テーブル初期化部25は、以下の処理を、全てのNIC3を処理対象としてそれぞれ実行し、さらに、DMAバッファ管理テーブル9の全てのエントリを対象として実行する。
S1では、DMAバッファ管理テーブル初期化部25は、DMAバッファ管理テーブル9を参照し、DMAバッファ4の先頭アドレス及び領域サイズを読み出す。
S2では、DMAバッファ管理テーブル初期化部25は、DMAバッファ4の先頭アドレス及び領域サイズをキーとして、ノード管理テーブル6を検索する。そして、DMAバッファ領域を包含するノード番号を特定する。
S3では、DMAバッファ管理テーブル初期化部25は、特定したノード番号を、DMAバッファ管理テーブル9のDMAバッファ番号に設定する。なお、この結果、ノード番号とDMAバッファ番号とが等しくなる。
このDMAバッファ管理テーブル初期化処理により設定されたDMAバッファ番号が、以降の各処理で用いられることとなる。
<5.2 振り分けテーブル設定指示処理(OS)>
図9及び図10は、OS21が備える振り分けテーブル設定指示部24が実行する処理及び当該処理の呼び出し処理を示す。振り分けテーブル設定指示部24の処理は、ネットワーク処理部22又はスケジューリング処理部23のいずれかによって呼び出される。
図9(A)は、ネットワーク処理部22から呼び出される場合を示す。この場合、具体的には、ネットワーク処理部22は、S11に示すように、データ通信で用いるポート番号及びプロトコル種別が決定したときに、振り分けテーブル設定指示処理を呼び出す。なお、具体例を挙げると、例えば、クライアント・サーバ構成のシステムで、サーバがクライアントからのリクエストに応じて処理を行うようなケースでは、クライアント側はサーバにパケットを送信するとき、すなわち、送信パケットの送信元ポート番号、プロトコル種別が決定したときに、振り分けテーブル設定指示処理を呼び出す。サーバ側では、サーバが起動したとき、すなわち、システムコールの呼び出し時において、クライアントからパケットを受信するインタフェース並びにポート番号及びプロトコル種別が決定したときに、振り分けテーブル設定指示処理を呼び出す。
一方、図9(B)は、スケジューリング処理部23から呼び出される場合を示す。この場合、具体的には、スケジューリング処理部23は、S12に示すように、例えば、定期的なタイマ割り込み等が発生し、アプリケーション31の処理が割当てられたCPU1を
移動したとき(例えば、負荷の高いCPUから負荷の低いCPUに移動したとき等)に、振り分けテーブル設定指示処理を呼び出す。
図10は、ネットワーク処理部又はスケジューリング処理部から呼び出された振り分けテーブル設定指示部24の処理を示す。
S21では、振り分けテーブル設定指示部24は、当該処理の呼び出し処理を実行したノード(すなわち、現在この処理を実行しているCPU1を含むノード)を特定し、そのノード番号を読み出す。なお、かかるノードの特定は、OS21が通常備える機能により行うことができる。
S22では、振り分けテーブル設定指示部24は、読み出したノード番号を、識別情報で識別される通信で受信したパケットの転送先のDMAバッファ番号とする。なお、ここでいう識別情報とは、ネットワーク処理部22により振り分けテーブル設定処理が呼び出されたときには、新たに決定した識別情報を示す。一方で、スケジューリング処理部23によりアプリケーション31の処理の割当てのCPU1が移動したときには、当該アプリケーション31が行うデータ通信の識別情報を示す。
S23では、振り分けテーブル設定指示部24が、識別情報を振り分けテーブル8に設定する対象とするNIC3を特定する。例えば、クライアント・サーバ構成のシステムで、サーバがクライアントからのリクエストに応じて処理を行うようなケースでは、次のような処理になる。すなわち、振り分けテーブル設定指示部24がクライアント側で動作している場合は、パケット送信における通信の送信元IPアドレスに基づき、識別情報を設定すべきNIC3を特定する。一方、振り分けテーブル設定指示部24がサーバプログラムで動作している場合は、サーバがクライアントからのパケットを受信するNIC3を明示的に指定することによって特定する。
S24では、振り分けテーブル設定指示部24が、パケット通信の識別情報を取得する。例えば、クライアント・サーバ構成のシステムで、サーバがクライアントからのリクエストに応じて処理を行うようなケースでは、次のような処理になる。すなわち、振り分けテーブル設定指示部24がクライアントプログラムで動作している場合は、送信パケットの送信元ポート番号、プロトコル種別(TCP/UDP)を取得する。一方、振り分けテーブル設定指示部24がサーバプログラムで動作している場合は、システムコールの呼び出し時に、クライアントからパケットを受信するポート番号及びプロトコル種別(TCP/UDP)を明示的に指定したものを取得する。
S25では、振り分けテーブル設定指示部24は、特定したNIC3の振り分けテーブル設定処理部10に対し、S24で取得したポート番号とプロトコル種別(TCP/UDP)、S22で決定したDMAバッファ番号とを対応付けた振り分け情報を振り分けテーブル8に設定するように、指示を送信する。
<5.3 振り分けテーブル設定処理(NIC)>
図11は、NIC3が備える振り分けテーブル設定処理部10が実行する処理を示すフローチャートである。この処理は、OS21の振り分けテーブル設定指示部24から、振り分け情報を振り分けテーブル8に設定する指示を受信したときに実行される。
S31では、振り分けテーブル設定処理部10は、OS21の振り分けテーブル設定指示部24より受信した振り分け情報に含まれる識別情報をキーとして、振り分けテーブル8を検索する。
S32では、振り分けテーブル設定処理部10は、OS21の振り分けテーブル設定指示部24より受信した振り分け情報に含まれる識別情報と一致するエントリが振り分けテ
ーブル8に有るか否かを判定する。一致するエントリがある場合には(Yes)、S33に進み、一致するエントリがない場合には(No)、S34に進む。
S33では、振り分けテーブル設定処理部10は、振り分けテーブル8のエントリのうち、受信した振り分け情報に含まれる識別情報と一致したエントリのDMAバッファ番号を、受信したDMAバッファ番号で上書きする。なお、このように一致するエントリがあり、既存のエントリを上書きする場合とは、すでに当該識別情報で識別される通信が行われている状態であり、前述した振り分けテーブル設定指示の呼び出しのうち、スケジューリング処理部23から呼び出された場合である。
S34では、振り分けテーブル設定処理部10は、受信した振り分け情報に含まれる識別情報及びDMAバッファ番号を、振り分けテーブル8の空きエントリに設定する。なお、このように一致するエントリがなく、新たなエントリを設定する場合とは、当該識別情報で識別される通信が新たに行われるということであり、前述した振り分けテーブル設定指示の呼び出しのうち、ネットワーク処理部22から呼び出された場合である。
なお、振り分けテーブル8のエントリは有限個しかないため、このS34の処理において、空きエントリがない場合、古いエントリから削除して新規エントリを作成する。古いエントリの削除判断は、振り分けテーブル8の時刻情報に基づいて行うことが可能である。
S35では、振り分けテーブル設定処理部10は、上書き又は新たに設定したエントリの時刻情報を最新の時刻情報で更新する。
かかる振り分けテーブル設定処理により、識別情報とDMAバッファ番号との対応関係を含んだ振り分け情報が振り分けテーブル8に設定される。この振り分け情報が、振り分け処理において用いられることとなる。
<5.4 振り分け処理(NIC)>
図12は、NIC3が備える振り分け処理部11及びDMAコントローラ12が実行する処理を示すフローチャートである。この処理は、NIC3が外部の情報処理装置等からパケットを受信したときに実行される。
S41では、振り分け処理部11は、受信したパケットのパケットヘッダより識別情報の読み出し(取得)を行う。
S42では、振り分け処理部11は、S41で読み出した識別情報をキーとして、振り分けテーブル8に設定された振り分け情報を検索する。
S43では、振り分け処理部11は、パケットヘッダの識別情報と一致する振り分け情報のエントリが振り分けテーブル8に有るか否かを判定する。一致するエントリがある場合には(Yes)、S44に進み、一致するエントリがない場合には(No)、S46に進む。
S44では、振り分け処理部11は、振り分けテーブル8のエントリのうち、パケットヘッダの識別情報と一致するエントリの時刻情報を最新の時刻情報で更新する。
S45では、振り分け処理部11は、振り分けテーブル8のエントリのうち、パケットヘッダの識別情報と一致する振り分け情報のエントリのDMAバッファ番号を読み出す。なお、このS45とS44の処理はどちらを先に行ってもよい。
S46では、振り分け処理部11は、DMAバッファ管理テーブル9におけるデフォルト設定のDMAバッファ番号を読み出す。
S47では、DMAコントローラ12は、S45又はS46で振り分け処理部11が読
み出したDMAバッファ番号のDMAバッファ4に、受信したパケットを転送する。このとき、DMAコントローラ12は、DMAバッファ管理テーブル9を参照して、転送先のDMAバッファ4における書き込みアドレスを特定し、その書き込みアドレスからパケットのデータ内容を書き込む。なお、書き込みが完了すると、図6の例で説明したように、DMAバッファ管理テーブル9の書き込みアドレスを変更する。
ここで、かかる振り分け処理につき、図13に示すデータの具体例を参照しながら説明する。
NIC3aの振り分け処理部11aでは、パケットを受信すると(1)、パケットヘッダから読み出した識別情報(ここでは、送信先ポート番号[TCPx4]、プロトコル[TCP])をキーとして、振り分けテーブルを検索する(2)。図13の例の場合、振り分けテーブル8aの1エントリ目が一致する(3)。このため、振り分け処理部11aは、当該エントリの時刻情報を更新した上で(4)、DMAバッファ番号[1]を読み出す(5)。そして、DMAコントローラ12aは、メモリ2aに包含されるDMAバッファ4a(DMAバッファ番号1)に対してパケットを転送し、書き込みを行う(6)。
[6.本実施形態の処理を適用した構成例]
ここで、図14〜図16を参照しながら、クライアント・サーバ構成のシステムで、サーバがクライアントからのリクエストに応じて処理を行う例における、クライアント側及びサーバ側の構成例並びにアプリケーション31の実行態様等が異なる様々な構成例につき、全体の処理の流れを示して説明する。なお、DMAバッファ管理テーブル9の初期設定についての説明は省略する。
<6.1 クライアントプログラムにおける適用例>
図14は、クライアント側において、NIC3が1つであり、クライアントプログラムとして動作するアプリケーション31が1つ実行されている例について示している。すなわち、この例では、NIC3aが設けられ、CPU1aで動作するアプリケーション31aが1つ実行されている。 まず、本情報処理装置(クライアント)のアプリケーション31aのデータ通信につき、OS21のネットワーク処理部22がTCPパケットを他の情報処理装置(サーバ)に送信する(1)。すると、振り分けテーブル設定指示部24が、NIC3aの振り分けテーブル8aに対して識別情報及びDMAバッファ番号を対応付けた振り分け情報の設定指示を送信する。そして、振り分けテーブル設定処理部10aが、振り分けテーブル8aに振り分け情報の設定を行う(2)。このときの振り分け情報のエントリは、図14の下部に示すようになっているとする。
その後、クライアントのNIC3aの[IPx1]を送信元IPアドレス、ポート番号[TCPx1]を送信元ポート番号に指定したTCPパケットが、サーバで動作する、宛先IPアドレス[IPx2]、ポート番号[TCPx2]のアプリケーションに向けて送信されたとする(3)。このTCPパケットはIPアドレス[IPx2]、ポート番号[TCPx2]のアプリケーションで受信され、その応答が返ってくる。応答のTCPパケットの送信先ポート番号、プロトコル種別(TCP/UDP)は、パケットを送信したクライアントが指定したポート番号とプロトコルになる。応答を受信したNIC3aは、受信パケットから読み出したポート番号とプロトコル種別をキーに振り分けテーブル8aを検索する(4)。その結果、識別情報が、振り分けテーブル8aのエントリと一致する。このため、振り分け処理部11aは、パケットの送信先のDMAバッファ番号[1]、すなわち、DMAバッファ4aを特定する(4)。そして、DMAコントローラ12aが、DMAバッファ4aへ受信パケットを転送する(5)。
このとき、この受信パケットの処理を行うのはアプリケーション31aの処理を行うCPU1aであるため、CPU1aが割り込み制御を行い、DMAバッファ4aに書き込まれた受信パケットを、カーネル受信バッファ5aにコピーする(6)。そして、アプリケ
ーション31aにおいてこの受信パケットを受信し、処理を行う(7)。このとき、CPU1aからみてDMAバッファ4aを包含するメモリ2aはローカルメモリである。このため、CPU1aはリモートメモリに対するアクセスをする必要がない。
<6.2 サーバプログラムにおける適用例>
図15は、サーバ側において、NIC3が2つであり、アプリケーション31が1つ実行されている例について示している。すなわち、この例では、NIC3a及びNIC3bが設けられ、CPU1aで動作するアプリケーション31aが1つ、サーバプログラムとして実行されている。アプリケーション31aでは、データを受信するインタフェースであるNIC3のIPアドレスを、ワイルドカードで指定している。なお、サーバが指定する受信インタフェースの指定は、ワイルドカードでなくても、ある特定のインタフェースを指定することも可能である。
まず、本情報処理装置(サーバ)のアプリケーション31aが起動すると、NIC3のIPアドレスをワイルドカードで指定しているため、振り分けテーブル設定指示部24は、NIC3a及びNIC3bの両方に対し、振り分け情報の設定指示を送信する(1)。
その後、他の情報処理装置(クライアント)で動作する、ポート番号[TCPx2]を用いるアプリケーションから、IPアドレス[IPx3]のNICを介し、サーバのNIC3aのIPアドレス[IPx1]を送信先とし、ポート番号[TCPx1]を指定したTCPパケットが送信されたとする。このTCPパケットはNIC3aで受信され、その識別情報が、振り分けテーブル8aのエントリと一致する。このため、振り分け処理部11aは、パケットの送信先のDMAバッファ番号[1]、すなわち、DMAバッファ4aを特定する(1-4)。そして、DMAコントローラ12aが、DMAバッファ4aへ受信パケットを転送する(1-5)。このパケットは、CPU1aの処理によってカーネル受信バッファ5aにコピーされ(1-6)、アプリケーション31aがこの受信パケットを受信し、処理を行う(1-7)。
一方で、同じく、クライアントで動作する、ポート番号[TCPx2]を用いるアプリケーションから、IPアドレス[IPx3]のNICを介し、サーバのNIC3bのIPアドレス[IPx2]を送信先とし、ポート番号[TCPx1]を指定したTCPパケットが送信されたとする。このTCPパケットはNIC3bで受信され、その識別情報が、振り分けテーブル8bのエントリと一致する。このため、振り分け処理部11bは、パケットの送信先のDMAバッファ番号[1]、すなわち、DMAバッファ4aを特定する(2-4)。そして、DMAコントローラ12bが、DMAバッファ4aへ受信パケットを転送する(2-5)。このパケットは、CPU1aの処理によってカーネル受信バッファ5aにコピーされ(2-6)、アプリケーション31aにおいてこの受信パケットを受信し、処理を行う(2-7)。
このように、アプリケーション31aにおいて、データを受信するインタフェースであるNIC3のIPアドレスをワイルドカードで指定している場合においても、各NIC3で受信したパケットが、アプリケーション31aの処理を行うCPU1aのローカルメモリであるメモリ2aに転送される。
<6.3 1つのNICを備え、1つのアプリケーションが実行されている例(CPUの割当て移動が行われた場合)>
最後に、アプリケーション31の処理を行うCPU1の割当てが移動された場合における処理の流れについて、サーバ側の例を用いて図16を参照しながら説明する。
図16の例では、初期状態として、本情報処理装置(サーバ)のアプリケーション31aの処理を、CPU1aが実行している。そして、アプリケーション31aのデータ通信につき、図17の下部の[変更前]に示すように振り分けテーブル8aに、振り分け情報
のエントリが設定されている。
この状態において、他の情報処理装置(クライアント)のポート番号[TCPx2]を用いるアプリケーションから、IPアドレス[IPx3]のNICを介し、サーバのNIC3aのIPアドレス[IPx1]を送信先とし、ポート番号[TCPx1]を指定したTCPパケットが送信されたとする。このTCPパケットはNIC3aで受信され、その識別情報が、振り分けテーブル8aのエントリと一致する。このため、振り分け処理部11aは、パケットの送信先のDMAバッファ番号[1]、すなわち、DMAバッファ4aを特定する(1)。そして、DMAコントローラ12aが、DMAバッファ4aへ受信パケットを転送する(2)。なお、割り込み制御以降の処理については説明を省略する。
ここで、アプリケーション31aの処理の割当てが、CPU1aからCPU1bに移動されたとする(3)。すると、OS21の振り分けテーブル設定指示部24が、アプリケーション31aが行うデータ通信につき、CPU1bに対応するメモリ2bのDMAバッファ4bの番号である[2]をDMAバッファ番号とした振り分け情報を振り分けテーブル8aに設定するように、NIC3aに指示を送信する(4)。NIC3aの振り分けテーブル設定処理部10aは、この指示に基づいて、振り分けテーブル8aの対象エントリを、図16の下部に示す[変更後]に示すように上書きする(5)。
そして、かかる上書き処理以降に、NIC3aで当該エントリの識別情報で識別される通信のTCPパケットを受信すると、振り分け処理部11aは、振り分けテーブル8aに設定されたDMAバッファ番号[2]、すなわち、DMAバッファ4bを特定する(6)。そして、DMAコントローラ12aが、DMAバッファ4bへ受信パケットを転送する(7)。
このように、アプリケーション31の処理を行うCPU1の割当てが移動されたときでも、パケットの転送先のDMAバッファ4が適切に切り替えられる。
なお、上記構成例は本実施形態の処理を適用した構成例の一部に過ぎず、他の構成例においても本実施形態の処理を適用することが可能である。
[7.実施形態による作用効果等]
前述した実施形態によれば、OS21の振り分けテーブル設定指示部24により、識別情報と、当該識別情報で識別される通信で受信されるデータの処理を行うCPU1が属するノードのメモリ2に包含されるDMAバッファ4の番号とが対応付けられる。さらに、NIC3の振り分けテーブル設定処理部10により、かかる識別情報及びDMAバッファ番号が対応付けられた振り分け情報が振り分けテーブル8に設定される。そして、NIC3においてパケットを受信したときに、NIC3の振り分け処理部11が、振り分けテーブル8の振り分け情報を参照し、受信したパケットの転送先とするDMAバッファ4を特定する。そして、このDMAバッファ4にパケットが転送される。このため、当該パケットの処理を行うCPU1に対応付けられたメモリ2(すなわち同じノードのメモリであり、ローカルメモリである)に包含されるDMAバッファ4にパケットが転送されることとなる。したがって、CPU1は、一連のパケットの受信処理においてリモートアクセスをする必要がなくなる。このため、リモートメモリに対するアクセス回数が低減され、情報処理装置の処理効率が向上する。
また、本実施形態によれば、アプリケーション31による通信における識別情報が新たに決定したときには、振り分けテーブル8に、識別情報とDMAバッファ番号との対応関係を含んだ振り分け情報が新たに設定される。このため、その識別情報で識別される通信で受信したパケットを適切なDMAバッファ4に転送することが可能である。一方で、アプリケーション31の処理が割当てられるCPU1が移動されたときには、振り分けテー
ブル8において、そのアプリケーション31で行うデータ通信の識別情報に対応付けられたDMAバッファ番号が上書きされる。このように、稼働中にCPU1の割当ての移動が生じても、その移動に合わせて受信パケットの転送先のDMAバッファ4が切り替えられ、引き続き適切なDMAバッファ4にパケットを転送することが可能となる。
なお、かりに振り分けテーブル8の振り分け情報に基づいて受信パケットの転送先が特定できなかった場合においても、DMAバッファ管理テーブル9に、デフォルト設定のDMAバッファ4が設定されている。このため、振り分け処理部11は、受信パケットを確実にいずれかのCPU1に振り分けることができる。
以上の情報処理装置の機能的構成及び物理的構成は、上述の態様に限るものではなく、例えば、各機能や物理資源を統合して実装したり、逆に、さらに分散して実装したりすることも可能である。
1a,1b…CPU、2a,2b…メモリ、3a,3b…NIC、4a,4b…DMAバッファ、5a,5b…カーネル受信バッファ、6…ノード管理テーブル、7a,7b…送受信バッファ、8a,8b…振り分けテーブル、9a,9b…DMAバッファ管理テーブル、10a,10b…振り分けテーブル設定処理部、11a,11b…振り分け処理部、12a,12b…DMAコントローラ、21…OS、22…ネットワーク処理部、23…スケジューリング処理部、24…振り分けテーブル設定処理部、25…DMAバッファ管理テーブル初期化部

Claims (7)

  1. それぞれ記憶手段を備えた複数のプロセッサを備えた情報処理装置の通信部として機能し得る通信ユニットにおいて、
    通信に関する識別情報と、前記複数のプロセッサのうち該通信についてのデータ処理を行うプロセッサが用いる記憶手段との対応関係を記憶する記憶手段と、
    受信したデータから該データの通信に関する識別情報を取得し、記憶された前記対応関係に基づいて、前記複数のプロセッサが備える複数の記憶手段のうち、取得した該識別情報に対応するプロセッサが備える記憶手段を特定し、特定した該記憶手段に対して、受信した前記データの転送を行う制御部と、
    を備えたことを特徴とする通信ユニット。
  2. 前記制御部は、前記対応関係の設定指示を受信したときに、該対応関係を、前記対応関係を記憶する記憶手段に設定する請求項1記載の通信ユニット。
  3. 前記対応関係の設定指示は、前記識別情報が決定したとき、又は、すでに決定している識別情報で識別される通信についてのデータ処理を行うプロセッサの割当てが移動されたときに受信される請求項2記載の通信ユニット。
  4. 前記制御部は、受信した前記データから取得した前記識別情報に対応付けられた記憶手段を、前記複数のプロセッサが備える複数の記憶手段から、前記対応関係に基づいて特定できないときには、前記複数のプロセッサが備える複数の記憶手段のうち、デフォルト設定された所定の記憶手段に対して、受信した前記データの転送を行う請求項1〜3のいずれか1つに記載の通信ユニット。
  5. それぞれ記憶手段を備えた複数のプロセッサを有するとともに、通信部として機能し得る通信ユニットを有する情報処理装置において、
    前記プロセッサが、
    通信に関する識別情報と、前記複数のプロセッサのうち該通信についてのデータ処理を行うプロセッサが用いる記憶手段との対応関係を前記通信ユニットに送信し、
    前記通信ユニットが、
    前記対応関係を受信したときに、該対応関係を記憶手段に設定し、
    受信したデータから該データの通信に関する識別情報を取得し、記憶された前記対応関係に基づいて、前記複数のプロセッサが備える複数の記憶手段のうち、取得した該識別情報に対応するプロセッサが備える記憶手段を特定し、特定した該記憶手段に対して、受信した前記データの転送を行う
    処理を実行する情報処理方法。
  6. 前記プロセッサは、前記識別情報が決定したとき、又は、すでに決定している識別情報で識別される通信についてのデータ処理を行うプロセッサの割当てが移動されたときに、前記対応関係を前記通信ユニットに送信する請求項5記載の情報処理方法。
  7. 前記通信ユニットは、受信した前記データから取得した前記識別情報に対応付けられた記憶手段を、前記複数のプロセッサが備える複数の記憶手段から、前記対応関係に基づいて特定できないときには、前記複数のプロセッサが備える複数の記憶手段のうち、デフォルト設定された所定の記憶手段に対して、受信した前記データの転送を行う請求項5又は6に記載の情報処理方法。
JP2011206253A 2011-09-21 2011-09-21 通信ユニット及び情報処理方法 Pending JP2013069063A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011206253A JP2013069063A (ja) 2011-09-21 2011-09-21 通信ユニット及び情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011206253A JP2013069063A (ja) 2011-09-21 2011-09-21 通信ユニット及び情報処理方法

Publications (1)

Publication Number Publication Date
JP2013069063A true JP2013069063A (ja) 2013-04-18

Family

ID=48474721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011206253A Pending JP2013069063A (ja) 2011-09-21 2011-09-21 通信ユニット及び情報処理方法

Country Status (1)

Country Link
JP (1) JP2013069063A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017172215A1 (en) * 2016-03-31 2017-10-05 Intel Corporation Technologies for network i/o access
WO2024100940A1 (ja) * 2022-11-07 2024-05-16 株式会社日立製作所 通信装置及び通信装置における受信データ処理方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55140925A (en) * 1979-04-19 1980-11-04 Fujitsu Ltd Multiple processor data process system
JPH06195300A (ja) * 1992-10-20 1994-07-15 Nec Corp データ交換方式
JPH0897859A (ja) * 1994-09-22 1996-04-12 Matsushita Electric Works Ltd ゲートウェイ装置
JPH09212469A (ja) * 1996-02-01 1997-08-15 Fujitsu Ltd ロック転送制御回路
JP2001175632A (ja) * 2000-10-10 2001-06-29 Hitachi Ltd マルチプロセッサシステム
JP2002185752A (ja) * 2000-12-12 2002-06-28 Fuji Xerox Co Ltd 通信端末装置
JP2003124953A (ja) * 2001-10-15 2003-04-25 Fujitsu Ltd リング型ネットワークシステム
JP2004241952A (ja) * 2003-02-05 2004-08-26 Nippon Telegr & Teleph Corp <Ntt> パケット転送制御システムとパケット転送制御方法およびプログラムならびにルータ
JP2006227912A (ja) * 2005-02-17 2006-08-31 Sony Computer Entertainment Inc 情報処理装置、情報処理方法、およびデータストリーム生成方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55140925A (en) * 1979-04-19 1980-11-04 Fujitsu Ltd Multiple processor data process system
JPH06195300A (ja) * 1992-10-20 1994-07-15 Nec Corp データ交換方式
JPH0897859A (ja) * 1994-09-22 1996-04-12 Matsushita Electric Works Ltd ゲートウェイ装置
JPH09212469A (ja) * 1996-02-01 1997-08-15 Fujitsu Ltd ロック転送制御回路
JP2001175632A (ja) * 2000-10-10 2001-06-29 Hitachi Ltd マルチプロセッサシステム
JP2002185752A (ja) * 2000-12-12 2002-06-28 Fuji Xerox Co Ltd 通信端末装置
JP2003124953A (ja) * 2001-10-15 2003-04-25 Fujitsu Ltd リング型ネットワークシステム
JP2004241952A (ja) * 2003-02-05 2004-08-26 Nippon Telegr & Teleph Corp <Ntt> パケット転送制御システムとパケット転送制御方法およびプログラムならびにルータ
JP2006227912A (ja) * 2005-02-17 2006-08-31 Sony Computer Entertainment Inc 情報処理装置、情報処理方法、およびデータストリーム生成方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017172215A1 (en) * 2016-03-31 2017-10-05 Intel Corporation Technologies for network i/o access
US10142231B2 (en) 2016-03-31 2018-11-27 Intel Corporation Technologies for network I/O access
WO2024100940A1 (ja) * 2022-11-07 2024-05-16 株式会社日立製作所 通信装置及び通信装置における受信データ処理方法

Similar Documents

Publication Publication Date Title
JP3483877B2 (ja) プロセッサでのデータ処理方法及びデータ処理システム
JP3696563B2 (ja) コンピュータ・プロセッサ及び処理装置
JP4455822B2 (ja) データ処理方法
US7921151B2 (en) Managing a plurality of processors as devices
JP4334901B2 (ja) コンピュータ処理システム及びコンピュータで実行される処理方法
US9137179B2 (en) Memory-mapped buffers for network interface controllers
US20240086065A1 (en) Delayed snoop for improved multi-process false sharing parallel thread performance
US7478390B2 (en) Task queue management of virtual devices using a plurality of processors
US8549521B2 (en) Virtual devices using a plurality of processors
JP4768386B2 (ja) 外部デバイスとデータ通信可能なインターフェイスデバイスを有するシステム及び装置
JP2004046861A (ja) プロセッサ装置内で一時的に専用パイプラインを設定する方法及びシステム
US20070214307A1 (en) Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system
US20080162877A1 (en) Non-Homogeneous Multi-Processor System With Shared Memory
WO2015135383A1 (zh) 一种数据迁移方法、装置及计算机***
CN109564502A (zh) 应用于存储设备中的访问请求的处理方法和装置
EP1557755A1 (en) Method for transferring data in a multiprocessor system, multiprocessor system and processor carrying out this method.
JP2013069063A (ja) 通信ユニット及び情報処理方法
US10802828B1 (en) Instruction memory
US9424227B2 (en) Providing byte enables for peer-to-peer data transfer within a computing environment
WO2019079940A1 (zh) 图形处理方法及相关装置和设备
WO2024120014A1 (zh) 内存访问控制方法、装置、计算设备和计算设备集群
US20110040911A1 (en) Dual interface coherent and non-coherent network interface controller architecture
CN112000596A (zh) 一种消息信号中断处理的方法和装置
JPH06348671A (ja) プログラム転送方式
KR19980086586A (ko) Tcp/ip 소켓 애플리케이션을 이용한 시스템 자원 저감 툴

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20140514

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161227