JP2004054419A - Inter-node transaction processor - Google Patents
Inter-node transaction processor Download PDFInfo
- Publication number
- JP2004054419A JP2004054419A JP2002208475A JP2002208475A JP2004054419A JP 2004054419 A JP2004054419 A JP 2004054419A JP 2002208475 A JP2002208475 A JP 2002208475A JP 2002208475 A JP2002208475 A JP 2002208475A JP 2004054419 A JP2004054419 A JP 2004054419A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- data
- memory
- node
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Communication Control (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明はコンピュータシステムに関し、特に、処理効率を考慮したノード間トランザクション処理に関する。
【0002】
【従来の技術】
近年、主にマルチメディアデータ転送を目的としたインタフェースとして、高速データ転送、リアルタイム転送を実現するシリアルバスが規格化されている。通常これはネットワーク通信分野で広く利用されているが、コンピュータシステムの分野においてもプロセッサバスを内在する複数のノード間を結合する手段としてシリアルバスが利用可能である。特に、ラックマウントを目的とする薄型サーバでは前記プロセッサバスを含むノード単位に基板が構成され、前記ノード間をコネクタで接続して高Way数サーバを実現する上でシリアルバスは有効な手段である。
【0003】
しかしノード内のプロセッサバスの高速性と比較するとシリアルバスの転送速度は低く、ノード間を渡る通信量が増加することによりシステム全体のスループットを落としたり、或いは転送データのサイクル数そのものが長いことによりレイテンシを増大させるなどの性能低下を引き起こす。
【0004】
特開平11−17767号公報に記載されたシリアルインタフェース回路では、シリアルバスを介して転送するパケットを第1種パケット、第2種パケットと分類し、データ等容量の大きいものを第1種、コマンドを第2種として第2種に分類されるパケットを優先的に転送することでコマンド転送のレイテンシ増大をできるだけ抑制するノード間の転送を実現している。
【0005】
【発明が解決しようとする課題】
プロセッサバスを内在する複数ノード間において、一般にノード間の通信は自ノードに存在しないメモリの内容をリード又はライトすることを目的に発行される。このとき発行された前記リード又はライトのリクエストが完了し、対象となるメモリからの必要データのリードが完了する或いは前記メモリへのデータライトが完了することにより、次のリクエストが発行可能となるケースも多い。
【0006】
このようなシステムでは上記手法のようにリクエスト(コマンド)だけを優先的に送信しても結局データの送信を待たなければならずシステム全体の性能を上げるのは難しい。
【0007】
本発明は、データを伴うリクエストトランザクション又はレスポンストランザクションのノード間の送信に際して、データの伴わないリクエストトランザクション又はレスポンストランザクションに対して優先度の区別なく送信させるとともに、データを伴うトランザクション送信におけるレイテンシ増大を抑制し、システム全体の性能を向上するトランザクション処理装置を提供することにある。
【0008】
【課題を解決するための手段】
上記目的を達成するため、本発明のトランザクション処理装置は、ノード間の通信を要するトランザクションがリードリクエストトランザクション、ライトリクエストトランザクション、リード完了通知トランザクション、ライト完了通知トランザクションのいずれであるかを検知する手段と、検知手段による検知結果に基づき、前記トランザクションがリードリクエストトランザクションないしライト完了通知トランザクションの場合に分割によるオーバーヘッド削減のため1本の通信路により送信する手段と、前記トランザクションがライトリクエストトランザクションないしリード完了通知トランザクションの場合に前記転送するトランザクションに含まれるデータをサブデータパケットに分割し、前記サブデータパケットを各々対応する複数の通信路により送信することによってトランザクションの通信に係るレイテンシを削減する手段と、を具備したことを特徴とする。
【0009】
【発明の実施の形態】
以下、本発明の実施形態に係るトランザクション処理装置について、図面を参照しながら詳細に説明する。図1は本発明の実施形態に係るノード間トランザクション処理装置の2ノードから成るシステムの構成例を示す図であり、図2は本発明の実施形態に係るノード間トランザクション処理装置の4ノードから成るシステムの構成例を示す図である。また、図3は本実施形態に係るノード間トランザクション処理を1本の伝送路で実現した装置の動作例を示すタイムチャートであり、図4は本実施形態に係るノード間トランザクション処理を2本の伝送路で実現した装置の動作例を示すタイムチャートである。
【0010】
図1における2個のノード101,102から成るコンピュータシステムの例において、各ノードは同一のプロセッサバス103に接続される複数個のプロセッサ104と、メモリ105と、前記プロセッサないし前記メモリ等を制御するコントローラ106と、複数個(本例では2個)の通信インタフェース[1]107及び通信インタフェース[2]108を有し、前記ノードは同じく同一プロセッサバス109に接続されるプロセッサ110、メモリ111、コントローラ112、通信インタフェース[1]113、通信インタフェース[2]114を有する他のノードと複数本(本例では2対4本)の通信路115によって結合される。
【0011】
1本の通信路は1ビットないしnビットの幅を持つシリアルバスで構成する。前記システムにおいて2個のノード101,102は同一の構成であり、いずれのプロセッサ104,110からもリクエストトランザクションの発行が可能であるが、説明を容易にするため、ここではノード101のプロセッサ104からリクエストトランザクションが発行されるケースについて説明する。
【0012】
ここで、本実施形態において用いられるノード間トランザクションについて説明する。ノード間トランザクションの種類としては、リクエスト(要求)トランザクションとレスポンス(応答)トランザクションがあり、リクエストトランザクションにはリードトランザクションとライトとライトトランザクションがあって、前記ライトトランザクションにはデータが付加されている。また、レスポンストランザクションにはリード完了通知トランザクションとライト完了通知トランザクションがあって、前記リード完了通知トランザクションにはデータが付加されている。すなわち、ノード間トランザクションの内で、ライトリクエストトランザクションとリード完了通知トランザクションには、データが付加されている。
【0013】
本発明の実施形態の特徴の1つは、その詳細は後述するが、このデータの付加されたトランザクションに対して当該データをサブデータパケットに分割してそれぞれのサブデータパケットを複数のノード間通信路に分けて送信することにより(データ付加されていないトランザクションは1本の通信路で送信する)、トランザクション通信のレイテンシを削減することである。
【0014】
再び、図1において、プロセッサ104から発行されたリードないしライトのリクエストトランザクションは前記トランザクションの宛先メモリアドレスによって、前記宛先メモリアドレスが前記プロセッサと同一ノード101内のメモリ105に含まれる場合、前記メモリに対し直接リクエストを渡し、前記メモリアドレスが前記プロセッサとは異なるノード102のメモリ111に含まれる場合、ノード間を接続する通信路115によってリクエストトランザクションを送信して宛先ノード102のメモリ111にリクエストを渡す。
【0015】
一方、前記リクエストトランザクションを受取ったメモリ111は、前記リクエストトランザクションがリードリクエストの場合、前記メモリアドレスで指定されるメモリの情報を読み出し、リード完了通知トランザクションと共にリードデータを通信路115によって前記リクエストトランザクションを発行したプロセッサ104に対して送信する。また、前記リクエストトランザクションがライトリクエストの場合、前記メモリアドレスで指定されるメモリに前記プロセッサから送信されたライトデータを書き込み、ライト完了通知トランザクションを通信路115によって前記リクエストを発行したプロセッサ104に対して送信する。
【0016】
次に、前記通信路115を用いた本実施形態に関する送信手法について詳細に説明する。通信路115を用いたノード間通信の制御は各々のノード101,102が有するコントローラ106,112によって実現する。ここでも前記コントローラはいずれの前記ノードでも同一構成であるが、説明を容易にするためリクエスト送信ノード101のコントローラ106については送信制御を実現するための回路のみ図示し、リクエスト受信ノード102のコントローラ112については受信制御を実現するための回路のみ図示している。ここで、コントローラやプロセッサを含めたノード101,102の回路構成を半導体パッケージとして一体的に形成しても良い。
【0017】
まず、トランザクションの送信制御を実現する回路について説明する。ノード101のプロセッサ104が発行するノード102のメモリ111宛のリードないしライトリクエストトランザクションは、まずコントローラ106内の送信バッファ116に記憶される。ノード101内で先行するノード間トランザクション通信が終了すると、次にノード間トランザクション通信を行う対象のトランザクションを前記送信バッファより読み出す。検知回路117は読み出したトランザクションの種類が、リードリクエストであるかライトリクエストであるかを検知し、前記トランザクションがリードリクエストの場合、データが付加されていないのでトランザクション分割部118に対し「分割無」の通知を行い、また、前記トランザクションがライトリクエストの場合、データが付加されているので(付加されたデータをサブデータパケットに分割する必要があるので)前記トランザクション分割部118に対し「分割有」の通知を行う。
【0018】
前記トランザクション分割部118では前記検知回路117より「分割無」の通知を受取ると、送信バッファ116より読み出したリードトランザクションのメモリアドレスに従いアドレスインタリーブでノード間転送を行う通信路115を1本決定し、前記通信路に対応する通信インタフェース[1]107又は通信インタフェース[2]108を用いて前記トランザクションを送信する。すなわち、リードリクエストはデータの付加されていないトランザクションであるので、1本の通信路で送信して他の通信路は空けておく。
【0019】
一方、前記トランザクション分割部118で前記検知回路117より「分割有」の通知を受取ると、前記トランクション分割部118は次に分割数判定回路119からの分割数の指定を待つ。前記分割数判定回路119では、ノード間の通信路数K(図1に示す例では送信用には2本)と送信バッファより読み出したライトトランザクションに含まれるデータサイクル数Mによってデータの分割数Nを次の通り決定する。K>Mの場合分割数N=M、K≦Mの場合分割数N=Kとする。具体例で説明すると、通信路数Kが3本で、データがデータ量の少ない2サイクルとデータ量の多い10サイクルのトランザクションがある場合に、前者のデータ分割数Nは2であり、後者のデータ分割数Nは3である。トランザクション分割部118は分割数判定回路119から分割数の指定を受取ると、送信バッファ116より読み出したライトトランザクションに含まれるデータを以下の要領でサブデータパケットに分割する。
【0020】
ここで、図3を参照して、ノードのシステム内送信とノード間の伝送路送信についての情報転送を具体例で説明する。規格にしたがって例えば、システム内では1サイクルで16バイト幅を処理でき、伝送路では4バイト幅を1サイクルとして処理できる場合、図3に示すように伝送路送信ではシステム内のヘッダ情報もデータも4つに分ける必要がある。図3に示すように、システム内で1サイクルのヘッダ情報301と8サイクルのデータ302からなるトランザクション303は、伝送路送信においては、1サイクルの処理バイト幅が1/4となっているので、トランザクション303は36(9サイクル×4)サイクルとなっている。
【0021】
次に、上述したサブデータパケットの具体的な分割手法を説明する。すなわち、具体例を以って云えば、ノード間の通信インタフェースが[1]、[2]、[3]と3本であって、8サイクルのデータであった場合に、各インタフェースに8サイクルデータを如何に振り分けるかがサブデータパケットの分割ということである。結論的に云えば、図3を参照すると、インタフェース[1]にはD1、D4、D7を、インタフェース[2]にはD2、D5、D8を、インタフェース[3]にはD3、D6を分割配分し、それぞれのサブデータパケットの先頭にヘッダ情報Hを付けることになる。このサブデータパケットのヘッダ情報はそれぞれが同一の内容を持っていて、システム内でのヘッダ情報と1サイクル内の処理バイト幅は異なるがパケット統合後の内容は同一のものである。
【0022】
以上のサブデータパケットの分割を一般的概念で記述すると、以下の通りとなる。前記ライトトランザクションはメモリアドレスを含む1サイクルのリクエストヘッダ情報とMサイクルのデータから成るものとする。このとき前記リクエストヘッダサイクルHは分割するN個全てのサブデータパケットの先頭に置き、前記MサイクルのデータD(1)、D(2)、…、D(M)は、サブデータパケット1に対しd(y)=D(xN+1)、サブデータパケット2に対しd(y)=D(xN+2)、…、サブデータパケットNに対しd(y)=D(xN+N)を置くよう分割を行う(ここでxは0以上の整数、yは各々のサブデータパケットのデータに順に付した番号とする)。以上のようにして分割を行ったサブデータパケット1からサブデータパケットNを各々対応する通信インタフェース[1]から通信インタフェース[N]を用いて送信する。
【0023】
次に、トランザクションの受信制御を実現する回路について説明する。受信ノード102では通信路115により送信されたトランザクションないしサブデータパケットは、送信ノード101の通信インタフェース[1]107、通信インタフェース[2]108に各々対応して通信インタフェース[1]113、通信インタフェース[2]114にて受信する。受信したトランザクションないしサブデータパケットは、まずヘッダ検出部120においてリードリクエストトランザクションであるかライトリクエストトランザクションのサブパケットであるかを判断する。前記判断結果がリードリクエストトランザクションの場合前記トランザクションはそのままトランザクション統合部121を通過して受信バッファ122に記憶される。前記受信バッファに記憶されたリクエストトランザクションは順次宛先メモリ111に渡される。
【0024】
一方、前記ヘッダ検出部120においてライトリクエストトランザクションのサブパケットであると判断した場合で、比較回路123にはまだヘッダサイクルが記憶されていない場合、前記サブパケットは前記ライトリクエストトランザクションを分割した1個目のサブパケットであると判断し、前記比較回路123にヘッダサイクルを記憶する。また、トランザクション統合部121に前記受信サブパケットのヘッダサイクルを通知すると共に、前記ヘッダサイクルから元のライトトランザクションのデータサイクル数Mを検知し、前記トランザクション統合部から受信バッファ122のM個分データ格納領域の確保を行う。次に、前記ヘッダサイクルに続くデータd(y)はトランザクション統合部121において、受信した通信インタフェース[1]から通信インタフェース[N]の番号[i]に対応してデータD((y−1)N+i)を復元し、前記受信バッファの対応する領域に記憶する。前述の例で具体的に云えば、通信インタフェース[1]に対応してD1、D4、D7を復元し、このデータD1、D4、D7は受信バッファの8個分確保した領域の第1、第4、第7の領域に記憶されることとなる。
【0025】
さらに、前記ヘッダ検出部120においてライトリクエストトランザクションのサブパケットであると判断した場合で、比較回路123にすでにヘッダサイクルが記憶されている場合、受信したヘッダサイクルと前記記憶されているヘッダサイクルとの比較を行う。比較の結果同一ヘッダサイクルではないと判断した場合は、新たに1個目のサブパケットを受信したと判断して上記と同じ処理を行う。また比較の結果同一ヘッダサイクルであると判断した場合トランザクション統合部121にはヘッダサイクルの通知を行わず、前記比較回路123より前記トランザクション統合部121に対し統合指示を通知することによってヘッダサイクルに続くデータd(y)に対し上記と同様にデータD((y−1)N+i)を復元し、受信バッファ122の対応する領域に記憶する。
【0026】
トランザクション統合部121ではまた、最初のヘッダサイクルの通知時にこれから統合を行おうとするトランザクションの分割数を検知し、比較回路123から通知される統合指示が前記分割数に達したことによって全分割サブデータパケットを受信したと判断し、受信バッファ122へのデータの記憶を完了する。前記受信バッファに記憶されたリクエストトランザクションは順次宛先メモリ111に渡される。
【0027】
図2は4個のノード201〜204から成るコンピュータシステムの例を示す。各ノードの構成は図1に示すものと同一であり、図2の例は各ノードが通信インタフェース[1]から通信インタフェース[4]205〜208を有し、各々他のノードと中継装置[1]から中継装置[4]209〜212を介する4対の通信路213によって結合される。なお、図2では送信と受信の一対の通信路を一本の実線で示している。このようにシステムを構成するノード数を4ノード、8ノード、…、nノードと増やした場合でも、中継装置を介して或いは多段構成される中継装置を介してノード間の複数の通信路による結合を持つことにより、図1にて説明したトランザクション処理装置の実現が可能である。
【0028】
以上説明したように、本発明の実施形態では、1回のノード間トランザクション転送に係るレイテンシを削減する効果が得られる。この効果について、図3及び図4を用いて説明する。
【0029】
図3はヘッダ情報301に続く8サイクルのデータ302から成るトランザクション303を1個の伝送路を用いて送信するケースを示しており、伝送路のデータ幅(規格で例えば、1サイクルで4バイト)がシステム内(規格で例えば、1サイクルで16バイト)に比べ1/4である例を挙げている。前記ケースでは伝送路に対しデータを送信するためのデータ送信時間304に36サイクルを要し、次に前記伝送路に対し送信開始するまでの間の送信完了待ち遅延305は27サイクルを要する(次回のトランザクションにとってのレイテンシが27サイクル増大する)ことが判る。
【0030】
これに対して、図4は図3と同じ能力の伝送路2本を用いてトランザクションを送信するケースを示しており、前記ケースでは伝送路に対するデータ送信時間401は20サイクル、送信完了待ち遅延402は11サイクルに改善されていることが判る。
【0031】
【発明の効果】
本発明によれば、ノード間の通信を要するトランザクションに含まれるデータをサブデータパケットに分割して複数の通信路で送信することによって、トランザクションの通信に係るレイテンシを削減することができる。
【0032】
また、ノード間で送信するトランザクションの種類を検知することによりノード間のデータ無しトランザクション転送のオーバーヘッドは増加させずに、データトランザクション転送のレイテンシを削減するノード間トランザクション処理装置の実現が可能である。
【図面の簡単な説明】
【図1】本発明の実施形態におけるノード間トランザクション処理装置の2ノードから成るシステムの構成例を示す図である。
【図2】本発明の実施形態に係るノード間トランザクション処理装置の4ノードから成るシステムの構成例を示す図である。
【図3】本実施形態に係るノード間トランザクション処理を1本の伝送路で実現した装置の動作例を示すタイムチャートである。
【図4】本実施形態に係るノード間トランザクション処理を2本の伝送路で実現した装置の動作例を示すタイムチャートである。
【符号の説明】
101,102 ノード
103,109 プロセッサバス
104,110 プロセッサ
105,111 メモリ
106,112 コントローラ
107,108,113,114 通信インタフェース
115 通信路
116 送信バッファ
117 トランザクション種類検知回路
118 トランザクション分割部
119 データ分割数判定回路
120 サブデータパケットヘッダ検出部
121 トランザクション結合部
122 受信バッファ
123 ヘッダサイクル比較回路
201〜204 ノード
205〜208 通信インタフェース
209〜212 中継装置
213 通信路
301 ヘッダ情報
302 データ
303 トランザクション
304,401 データ送信時間
305,402 送信完了待ち遅延[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a computer system, and more particularly, to a transaction process between nodes in consideration of processing efficiency.
[0002]
[Prior art]
In recent years, a serial bus for realizing high-speed data transfer and real-time transfer has been standardized as an interface mainly for multimedia data transfer. Normally, this is widely used in the field of network communication, but also in the field of computer systems, a serial bus can be used as a means for connecting a plurality of nodes having a processor bus therein. In particular, in a thin server intended for rack mounting, a board is configured for each node including the processor bus, and a serial bus is an effective means for realizing a high-way server by connecting the nodes with a connector. .
[0003]
However, compared to the high speed of the processor bus in the node, the transfer speed of the serial bus is low, and the communication amount between the nodes increases, so that the throughput of the entire system decreases or the cycle number of transfer data itself is long. This causes performance degradation such as an increase in latency.
[0004]
In the serial interface circuit described in Japanese Patent Application Laid-Open No. H11-17767, packets to be transferred via a serial bus are classified into a first type packet and a second type packet. Is a second type, and a packet classified into the second type is preferentially transferred, thereby realizing transfer between nodes that suppresses an increase in the latency of command transfer as much as possible.
[0005]
[Problems to be solved by the invention]
In general, communication between nodes among a plurality of nodes including a processor bus is issued for the purpose of reading or writing the contents of a memory that does not exist in the own node. At this time, the issued read or write request is completed, and when the necessary data is read from the target memory or the data write to the memory is completed, the next request can be issued. There are many.
[0006]
In such a system, even if only a request (command) is preferentially transmitted as in the above-described method, it is necessary to wait for data transmission after all, and it is difficult to improve the performance of the entire system.
[0007]
According to the present invention, when transmitting a request transaction or a response transaction involving data between nodes, a request transaction or a response transaction involving no data is transmitted without distinction of priority, and an increase in latency in transmitting a transaction involving data is suppressed. Another object of the present invention is to provide a transaction processing device that improves the performance of the entire system.
[0008]
[Means for Solving the Problems]
In order to achieve the above object, a transaction processing device according to the present invention includes a means for detecting whether a transaction requiring communication between nodes is a read request transaction, a write request transaction, a read completion notification transaction, or a write completion notification transaction. Means for transmitting data over a single communication path based on a result of detection by the detecting means in order to reduce overhead due to division when the transaction is a read request transaction or a write completion notification transaction; In the case of a transaction, data included in the transaction to be transferred is divided into sub-data packets, and Means for reducing the latency of the communication of the transaction by sending a plurality of communication paths that, characterized by comprising a.
[0009]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, a transaction processing device according to an embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 is a diagram showing a configuration example of a system including two nodes of an inter-node transaction processing device according to an embodiment of the present invention, and FIG. 2 is a diagram including four nodes of an inter-node transaction processing device according to an embodiment of the present invention. FIG. 1 is a diagram illustrating a configuration example of a system. FIG. 3 is a time chart showing an operation example of an apparatus in which the inter-node transaction processing according to the present embodiment is realized by one transmission line. FIG. 4 is a time chart showing the inter-node transaction processing according to the present embodiment. 6 is a time chart illustrating an operation example of an apparatus realized by a transmission path.
[0010]
In the example of the computer system including two
[0011]
One communication path is constituted by a serial bus having a width of 1 bit to n bits. In the above system, the two
[0012]
Here, an inter-node transaction used in the present embodiment will be described. There are request (request) transactions and response (response) transactions as types of transactions between nodes. Request transactions include read transactions, write transactions, and write transactions, and data is added to the write transactions. The response transaction includes a read completion notification transaction and a write completion notification transaction, and data is added to the read completion notification transaction. That is, of the transactions between nodes, data is added to the write request transaction and the read completion notification transaction.
[0013]
One of the features of the embodiment of the present invention, which will be described later in detail, is to divide the data into sub-data packets for the transaction to which the data is added, and to transmit each sub-data packet to a plurality of nodes. The transmission is divided into channels (transactions to which no data is added are transmitted through a single communication channel), thereby reducing the latency of transaction communication.
[0014]
Referring again to FIG. 1, a read or write request transaction issued from the
[0015]
On the other hand, when the request transaction is a read request, the
[0016]
Next, a transmission method according to the present embodiment using the
[0017]
First, a circuit that implements transaction transmission control will be described. A read or write request transaction addressed to the
[0018]
When the
[0019]
On the other hand, when the
[0020]
Here, with reference to FIG. 3, a specific example will be described of information transfer regarding intra-system transmission of a node and transmission path transmission between nodes. According to the standard, for example, if a system can process a 16-byte width in one cycle and a transmission line can process a 4-byte width as one cycle, the header information and data in the system are transmitted in the transmission path as shown in FIG. It needs to be divided into four. As shown in FIG. 3, a
[0021]
Next, a specific method of dividing the above-described sub data packet will be described. In other words, to give a specific example, if the communication interfaces between the nodes are [1], [2], and [3] and the data is 8 cycles, each interface has 8 cycles. How the data is distributed is the division of the sub data packet. In conclusion, referring to FIG. 3, D1, D4 and D7 are allocated to the interface [1], D2, D5 and D8 are allocated to the interface [2], and D3 and D6 are allocated to the interface [3]. Then, header information H is added to the head of each sub data packet. The header information of each sub data packet has the same contents, and the header information in the system differs from the header information in the processing byte width in one cycle, but the contents after packet integration are the same.
[0022]
The above-described division of the sub-data packet is described in a general concept as follows. The write transaction includes one cycle of request header information including a memory address and M cycles of data. At this time, the request header cycle H is placed at the head of all the N sub data packets to be divided, and the data D (1), D (2),. On the other hand, division is performed such that d (y) = D (xN + 1), d (y) = D (xN + 2) for
[0023]
Next, a circuit for realizing transaction reception control will be described. In the receiving
[0024]
On the other hand, if the
[0025]
Further, when the
[0026]
The
[0027]
FIG. 2 shows an example of a computer system including four nodes 201 to 204. The configuration of each node is the same as that shown in FIG. 1, and in the example of FIG. 2, each node has communication interfaces [1] to [4] 205 to 208, and each node has another node and the relay device [1]. ] Are connected by four pairs of
[0028]
As described above, in the embodiment of the present invention, the effect of reducing the latency related to one-time transaction transfer between nodes can be obtained. This effect will be described with reference to FIGS.
[0029]
FIG. 3 shows a case in which a
[0030]
On the other hand, FIG. 4 shows a case in which a transaction is transmitted using two transmission paths having the same capacity as in FIG. 3, and in this case, the data transmission time 401 for the transmission path is 20 cycles, and the transmission
[0031]
【The invention's effect】
According to the present invention, the latency involved in transaction communication can be reduced by dividing data included in a transaction requiring communication between nodes into sub-data packets and transmitting the sub-data packets through a plurality of communication paths.
[0032]
Further, by detecting the type of transaction transmitted between nodes, it is possible to realize an inter-node transaction processing apparatus that reduces the latency of data transaction transfer without increasing the overhead of data-less transaction transfer between nodes.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration example of a system including two nodes of an inter-node transaction processing device according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating a configuration example of a system including four nodes of an inter-node transaction processing device according to an embodiment of the present invention.
FIG. 3 is a time chart illustrating an operation example of an apparatus that implements transaction processing between nodes according to the present embodiment using one transmission line.
FIG. 4 is a time chart showing an operation example of an apparatus which realizes transaction processing between nodes according to the present embodiment using two transmission paths.
[Explanation of symbols]
101, 102
Claims (4)
前記プロセッサは、メモリアドレスを指定してリード又はライトのリクエストトランザクションを発行し、前記メモリアドレスが前記プロセッサと同一ノード内のメモリに含まれる場合に、当該メモリに対し直接にリクエストトランザクションを渡し、
前記メモリアドレスが前記プロセッサとは異なるノードのメモリに含まれる場合に、前記通信路によってリクエストトランザクションを、前記メモリアドレスを含むメモリを有するノード宛に送信して宛先ノードのメモリに渡し、
前記リクエストトランザクションを受取ったメモリは前記リクエストトランザクションがリードの場合前記メモリアドレスで指定されるメモリの情報を読み出し、リード完了通知トランザクションと共にリードデータを、前記リクエストトランザクションを発行したプロセッサに対して送信し、前記リクエストトランザクションがライトの場合前記メモリアドレスで指定されるメモリに前記プロセッサから送信されたライトデータを書き込み、ライト完了通知トランザクションを前記リクエストを発行したプロセッサに対して送信し、
ノード間の通信を要するリクエストトランザクション又は完了通知トランザクションについて、リードリクエストトランザクション又はライト完了通知トランザクションは前記メモリアドレスに基づいて決定される1本の通信路によって通信を行い、
ライトデータを含むライトリクエストトランザクション又はリードデータを含むリード完了通知トランザクションは、前記トランザクションに含まれるデータを複数個のサブデータパケットに分割し、前記サブデータパケットを各々対応する通信路を用いて送信し、受け側のノード内のコントローラで前記サブデータパケットを元のライトリクエストトランザクション又はリード完了通知トランザクションに復元する
ことを特徴とするノード間トランザクション処理装置。An inter-node transaction processing device comprising: a plurality of nodes including at least one processor, a memory, a controller for controlling the processor and the memory; and at least two communication paths interconnecting the plurality of nodes. At
The processor issues a read or write request transaction by designating a memory address, and when the memory address is included in a memory in the same node as the processor, passes the request transaction directly to the memory;
When the memory address is included in the memory of a node different from the processor, the request transaction is transmitted to the node having the memory including the memory address by the communication path and passed to the memory of the destination node.
The memory that has received the request transaction reads information of the memory specified by the memory address when the request transaction is a read, and transmits read data together with a read completion notification transaction to the processor that issued the request transaction, If the request transaction is a write, write the write data transmitted from the processor to the memory specified by the memory address, transmit a write completion notification transaction to the processor that issued the request,
Regarding a request transaction or a completion notification transaction requiring communication between nodes, a read request transaction or a write completion notification transaction performs communication through one communication path determined based on the memory address,
The write request transaction including the write data or the read completion notification transaction including the read data is performed by dividing the data included in the transaction into a plurality of sub data packets and transmitting the sub data packets using the corresponding communication paths. An inter-node transaction processing device, wherein the controller in the receiving node restores the sub data packet to the original write request transaction or read completion notification transaction.
前記ノード間の通信を要するトランザクションがライトリクエストトランザクション又はリード完了通知トランザクションであることを検知して、前記ノード間の通信路数Kと前記ライトリクエストトランザクション又は前記リード完了通知トランザクションに含まれるデータサイクル数Mとによって、前記サブデータパケットへの分割数Nを決定する
ことを特徴とするノード間トランザクション処理装置。In claim 1,
Detecting that the transaction requiring communication between the nodes is a write request transaction or a read completion notification transaction, the number of communication paths K between the nodes and the number of data cycles included in the write request transaction or the read completion notification transaction M, the number of divisions N into the sub-data packets is determined.
前記トランザクションがライトリクエストトランザクション又はリード完了通知トランザクションである場合、前記通信路のサブデータパケットの先頭には前記トランザクションのヘッダ情報を付加し、
前記付加されたヘッダ情報は前記通信路毎で同一内容を有している
ことを特徴とするノード間トランザクション処理装置。In claim 1 or 2,
If the transaction is a write request transaction or a read completion notification transaction, add header information of the transaction to the head of the sub-data packet of the communication path,
The inter-node transaction processing device, wherein the added header information has the same content for each of the communication paths.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002208475A JP2004054419A (en) | 2002-07-17 | 2002-07-17 | Inter-node transaction processor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002208475A JP2004054419A (en) | 2002-07-17 | 2002-07-17 | Inter-node transaction processor |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004054419A true JP2004054419A (en) | 2004-02-19 |
Family
ID=31932615
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002208475A Pending JP2004054419A (en) | 2002-07-17 | 2002-07-17 | Inter-node transaction processor |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004054419A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014212516A (en) * | 2013-04-01 | 2014-11-13 | 株式会社アクセル | Communication system, communication method |
| US9110856B2 (en) | 2013-01-23 | 2015-08-18 | Kabushiki Kaisha Toshiba | Interface control apparatus, data storage apparatus and method for interface control |
-
2002
- 2002-07-17 JP JP2002208475A patent/JP2004054419A/en active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9110856B2 (en) | 2013-01-23 | 2015-08-18 | Kabushiki Kaisha Toshiba | Interface control apparatus, data storage apparatus and method for interface control |
| JP2014212516A (en) * | 2013-04-01 | 2014-11-13 | 株式会社アクセル | Communication system, communication method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12341686B2 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC) | |
| US7412571B2 (en) | Memory arbitration system and method having an arbitration packet protocol | |
| US7609718B2 (en) | Packet data service over hyper transport link(s) | |
| US8732360B2 (en) | System and method for accessing memory | |
| US9430432B2 (en) | Optimized multi-root input output virtualization aware switch | |
| US7606933B2 (en) | Shared memory and high performance communication using interconnect tunneling | |
| CN110083461B (en) | Multitasking system and method based on FPGA | |
| US6615282B1 (en) | Adaptive messaging | |
| US7403525B2 (en) | Efficient routing of packet data in a scalable processing resource | |
| US7596148B2 (en) | Receiving data from virtual channels | |
| WO2001018988A1 (en) | Bridge between parallel buses over a packet-switched network | |
| WO1992015162A1 (en) | Method and apparatus for controlling data communication operations within stations of a local area network | |
| CN100592273C (en) | Apparatus and method for performing DMA data transfer | |
| EP1554644A4 (en) | METHOD AND SYSTEM FOR TCP / IP APPLICATIONS USING GENERIC BUFFERS FOR NON-STANDBY TCP APPLICATIONS | |
| CN101930416A (en) | Hardware assisted inter-processor communication | |
| US20050089033A1 (en) | Method, system, and program for constructing a packet | |
| CN114827151B (en) | Heterogeneous server cluster, and data forwarding method, device and equipment | |
| US6279052B1 (en) | Dynamic sizing of FIFOs and packets in high speed serial bus applications | |
| CN115633098B (en) | Storage management method and device of many-core system and integrated circuit | |
| GB2377138A (en) | Ring Bus Structure For System On Chip Integrated Circuits | |
| JP2003050788A (en) | Apparatus and method for distribution of signal from high level data link controller to multiple digital signal processor core | |
| KR101197294B1 (en) | Method for communication of interface device in SoC-based system network for QoS and improvement of transfer efficiency | |
| US20040151175A1 (en) | Transparent data format within host device supporting differing transaction types | |
| JP2004054419A (en) | Inter-node transaction processor | |
| US20030093594A1 (en) | Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller |