JP4687925B2 - 優先調停システム及び優先調停方法 - Google Patents

優先調停システム及び優先調停方法 Download PDF

Info

Publication number
JP4687925B2
JP4687925B2 JP2008031545A JP2008031545A JP4687925B2 JP 4687925 B2 JP4687925 B2 JP 4687925B2 JP 2008031545 A JP2008031545 A JP 2008031545A JP 2008031545 A JP2008031545 A JP 2008031545A JP 4687925 B2 JP4687925 B2 JP 4687925B2
Authority
JP
Japan
Prior art keywords
packet
latency
cpu
routing
cpus
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.)
Expired - Fee Related
Application number
JP2008031545A
Other languages
English (en)
Other versions
JP2009194510A (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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2008031545A priority Critical patent/JP4687925B2/ja
Publication of JP2009194510A publication Critical patent/JP2009194510A/ja
Application granted granted Critical
Publication of JP4687925B2 publication Critical patent/JP4687925B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、パケットの調停に関する。
複数のCPUからアクセス先の共有資源(メモリ、IO等)までの経路上に、調停回路を有する複数のクロスバが存在する大規模SMP(Symmetric Multi Processing)コンピュータシステムが知られている。
以下に、出願人が知り得た先行技術文献を記載する。
特開2005−340959号公報 特開平9−321795号公報 特開平10−135952号公報 特開平11−312093号公報
物理的に経路の遠くに位置する共有資源へのアクセスは、複数のLSIを経由して行われる。そのため、レイテンシが長くなってしまうという欠点が存在する。さらに、経路途中の調停回路において競合が発生した場合、該リクエストが待たされることがある。この場合、該リクエストの完了までにかかるレイテンシは更に増大する。
仮に、CPU内に、経路の遠くに位置する共有資源にアクセスを要求する先行リクエストと、該先行リクエストの完了を待って発行される後続リクエストが存在した場合、先行リクエストのレイテンシの増大は、後続リクエストの発行を遅らせる原因となる。その結果、コンピュータシステム全体の性能を低下させてしまうという問題が存在した。
本発明による優先調停システムは、複数のCPUと、複数のCPUからアクセスされる複数のハードウエア資源と、複数のCPUの各々に対応する記憶領域に設定され、自CPUと複数のハードウエア資源の各々とのレイテンシを示すレイテンシ情報を格納する複数のルーティングテーブルと、複数のCPUと複数のハードウエア資源との間で交換されるパケットのルーティングを行う複数のクロスバとを備える。複数のCPUの各々は、送信パケットを複数のハードウエア資源のうちの送信先ハードウエア資源に送信するとき、複数のルーティングテーブルのうち自CPUに対応するルーティングテーブルにおいて送信先ハードウエア資源に対応するレイテンシ情報を送信パケットに付加する。複数のクロスバの各々は、複数のパケットを受信したとき、受信した複数のパケットの各々のレイテンシ情報を参照してレイテンシが大きいパケットを優先的に送信先ハードウエア資源の方に送信する優先調停処理を実行する。
本発明による優先調停方法は、複数のCPUの各々に対応する記憶領域に、自CPUと複数のハードウエア資源の各々とのレイテンシを示すレイテンシ情報を格納する複数のルーティングテーブルを設定するステップと、複数のCPUの各々が、送信パケットを複数のハードウエア資源のうちの送信先ハードウエア資源に送信するとき、複数のルーティングテーブルのうち自CPUに対応するルーティングテーブルにおいて送信先ハードウエア資源に対応するレイテンシ情報を送信パケットに付加するステップと、複数のクロスバの各々が、複数のパケットを受信したとき、受信した複数のパケットの各々のレイテンシ情報を参照してレイテンシが大きいパケットを優先的に送信先ハードウエア資源の方に送信する優先調停処理を実行するステップとを備える。
本発明により、長経路のパケットや経路上の競合により待たされたパケットによるレイテンシの低下を抑制する優先調停装置及び優先調停方法が実現される。
以下、本発明を実施するための最良の形態について説明する。最初に、本実施の形態について概略的に説明する。
本実施の形態の優先調停システムと優先調停方法は、リクエスタ(CPU)からアクセス先の共有資源(メモリ、IO等のハードウエア資源)までの経路上に、調停回路を有する複数のクロスバが存在する大規模SMPコンピュータシステムに適用される。
リクエスタが発行するリクエストパケットのヘッダ部分に、レイテンシ値を記載するフィールド(レイテンシフィールド)が設けられる。アクセスリクエストの行き先情報から、行き先の共有資源までのルーティング情報と最短所要時間(最少レイテンシ)を求めることが出来るルーティングテーブルが設けられる。CPUは、このルーティングテーブルを参照して、パケットを生成する際にパケットヘッダのレイテンシフィールドに該レイテンシテーブルから求めた経路通過で所要されるレイテンシ値を設定する。
パケットの転送経路上で複数のパケットが同一経路を同時に使用することにより競合が発生し、調停が必要となる場合がある。こうした場合、パケットヘッダのレイテンシ情報を比較して、パケットが所用するレイテンシ値が大きなパケットを優先的に通過させる機構が設けられる。この機構は、長経路のパケットのレイテンシを改善する。
また、或るパケットが調停競合で一時的に待たされた際に、待たされた時間をパケットヘッダのレイテンシ値に加算する機構が設けられる。この機構は、該パケットを次回の調停においては以前より高優先なパケットとすることを可能とする。その結果、該パケットの次調停競合における更なるレイテンシ悪化が抑制される。
次に、こうした優先調停システムと優先調停方法を実現するための具体的な構成について説明する。図1に本実施の形態の構成を示す。図1を参照すると、本実施の形態における優先調停システム、優先調停方法が適用されるシステムは複数のLSIで構成される。このシステムは、リクエストパケットを送出する機能を有する4個のリクエスタCPU1010、CPU1011、CPU1110、CPU1111と、リクエストのアクセス先となる4個の共有資源IOH1220、IOH1221、IOH1320、IOH1321と、リクエスタCPU1010、CPU1011、CPU1110、CPU1111と共有資源IOH1220、IOH1221、IOH1320、IOH1321との間に位置し、パケットの通過する経路を形成するクロスバNC1000、NC1100、NC1200、NC1300とを備える。
これらのLSIのうちの任意の2LSI間は、一方から他方にデータを転送する単方向の接続インタフェースと、他方から一方にデータを転送する単方向の接続インタフェースとの2本を束ねた双方向の接続インタフェースを介して接続される。
リクエスタCPU1010およびCPU1011は双方向の接続インタフェースを介してクロスバNC1000と接続し、共有資源IOH1220〜IOH1321に対するアクセスリクエストをリクエストパケットとしてクロスバNC1000へ出力する機能および、共有資源から処理完了通知として送出されるリプライパケットを受信する機能を有している。
同様に、リクエスタCPU1110およびCPU1111は双方向の接続インタフェースを介してクロスバNC1100と接続し、共有資源IOH1220〜IOH1321へのアクセスリクエストパケットをクロスバNC1100へ出力する機能および、共有資源からのリプライパケットを受信する機能を有している。
また、各リクエスタCPU1010、CPU1011、CPU1110、CPU1111に対応する記憶領域には、自CPUからアクセスし得る共有資源毎に、パケット転送時にクロスバで使用されるルーティング情報と、自CPUから行き先共有資源までパケットを転送する際に最低必要な所要時間を表す最少レイテンシ情報(本実施の形態においては片道レイテンシを示す)とを保持するルーティングテーブルR1010、R1011、R1110、R1111が格納される。各リクエスタCPU1010、CPU1011、CPU1110、CPU1111は、リクエストパケット出力時に、自CPUのルーティングテーブルを参照して、行き先の共有資源に対応するルーティング情報と最短レイテンシ値をパケットヘッダの行き先指定フィールドおよびレイテンシフィールドに設定する機能を有している。
図4はルーティングテーブルR1010、R1011、R1110、R1111のうちの任意の一つのルーティングテーブルRの構成および、パケットヘッダへの設定動作を示している。ルーティングテーブルR内には共有資源毎にルーティング情報およびレイテンシ情報(最短レイテンシ値)が保持されている。各リクエスタCPU1010、CPU1011、CPU1110、CPU1111は、行き先となる共有資源を指定することで、対応するルーティング情報および最短レイテンシ値を取り出し、それらの値をパケットヘッダの行き先指定フィールドF1とレイテンシフィールドF2にそれぞれ設定できる。
共有資源IOH1220、IOH1221は、クロスバNC1200と双方向の接続インタフェースを介して接続し、全てのリクエスタCPUからのリクエストパケットをクロスバNC1200経由で受信する機能を有している。同様に共有資源IOH1320、IOH1321も、クロスバNC1300と双方向の接続インタフェースを介して接続し、全てのリクエスタCPUからのリクエストパケットをクロスバNC1300経由で受信する機能を有している。
リクエストパケットを受信した共有資源IOH1220〜1321は、リクエスタCPUからのリクエストパケットを解析し、適当な処理(共有資源に対するリードやライト等)を行う。その後、共有資源IOH1220〜1321は、リクエスタCPUを送信先CPUとして対するリプライパケットを生成し、接続するクロスバへ送出する。
共有資源IOH1220〜1321は、リクエスタCPUが有するルーティングテーブルと同等機能のハードウエア資源側ルーティングテーブルR1220、1221、1320、1321を内部に有し、リクエスタCPU1010〜1111によるリクエストパケット生成と同様の機能を有する。すなわち、共有資源IOH1220〜1321は、リプライパケット出力時に、リクエスト発行元のリクエスタCPUを送信先CPUとする。共有資源IOH1220〜1321は、送信先CPUに対応するルーティング情報である復路ルーティング情報と最短レイテンシ値を示す復路レイテンシ情報を返信パケットのパケットヘッダの行き先指定フィールドおよびレイテンシフィールドに設定する。
クロスバNC1000は隣接するクロスバNC1100、NC1200および、リクエスタCPU1010、CPU1011と双方向の接続インタフェースを介して接続し、LSI間でパケットの入出力を行う機能を有している。クロスバNC1000内の各接続インタフェースにはポート番号が割り当てられている。クロスバNC1100との接続インタフェースはポート2、クロスバNC1200との接続インタフェースはポート3、リクエスタCPU1010との接続インタフェースはポート0、リクエスタCPU1011との接続インタフェースはポート1と割りあてられる。
同様に、クロスバNC1100は隣接するクロスバNC1000、NC1300および、リクエスタCPU1110、CPU1111と双方向の接続インタフェースを介して接続し、LSI間でのパケットの入出力を行う機能を有している。クロスバNC1100内の各接続インタフェースは、クロスバNC1000と同様にポート番号が割り当てられている。クロスバNC1000との接続インタフェースはポート3、クロスバNC1300との接続インタフェースはポート2、リクエスタCPU1110との接続インタフェースはポート0、リクエスタCPU1111との接続インタフェースはポート1と割りあてられる。
前述のクロスバと同様に、クロスバNC1200は隣接するクロスバNC1000、NC1300および、共有資源IOH1220、IOH1221と双方向の接続インタフェースを介して接続し、LSI間でのパケットの入出力を行う機能を有している。クロスバNC1200内の各接続インタフェースは、前述のクロスバと同様にポート番号が割り当てられている。クロスバNC1000との接続インタフェースはポート2、クロスバNC1300との接続インタフェースはポート3、共資源IOH1220との接続インタフェースはポート1、共有資源IOH1221との接続インタフェースはポート0と割りあてられる。
前述のクロスバと同様に、クロスバNC1300は隣接するクロスバNC1100、NC1200および、共有資源IOH1320、IOH1321と双方向の接続インタフェースを介して接続し、LSI間でのパケットの入出力を行う機能を有している。クロスバNC1300内の各接続インタフェースは、前述のクロスバと同様にポート番号が割り当てられている。クロスバNC1200との接続インタフェースはポート2、クロスバNC1100との接続インタフェースはポート3、共資源IOH1320との接続インタフェースはポート1、共有資源IOH1321との接続インタフェースはポート0と割りあてられる。
各クロスバNC1000〜NC1300はリクエストパケットとリプライパケットの区別は行わず、パケットヘッダに存在するルーティング情報に従い、パケットを行き先IOH1220〜1321またはCPU1010〜CPU1111へ転送することを目的として動作する。各クロスバNC1000〜NC1300は内部にパケット受信部および出力調停部を接続インタフェース毎に有する。各クロスバNC1000〜NC1300が接続インタフェースから受信するパケットは、受信部で一旦保持される。調停制御部から出力されるパケットは接続インタフェースを経由して、他のLSIで受信される。
図2はクロスバ内部のパケット受信部および出力調停部の動作を示している。本実施の形態の構成である図1のクロスバ構成では、クロスバ1個あたりポートが4個存在する。そのため、実際は4個のパケット受信部と4個の出力調停部の図が適当ではあるが、図2ではこれを簡略化しており、2個のパケット受信部と1個の出力調停部について表している。
各パケット受信部は、受信バッファと行き先解析回路C1を有している。受信バッファは、受信パケットを一旦保持する。行き先解析回路C1は、受信バッファに保持されたパケットのパケットヘッダの行き先指定フィールドを解析して、パケットの出力先ポートを決定し、該出力先ポートの出力調停回路C2に対して調停リクエストを出力する。また、各パケット受信部は、行き先解析回路C1で決定した行き先ポートの出力調停回路C2に対して、調停リクエストを出力すると同時に、パケットヘッダのレイテンシフィールドの値を出力する機能も有している。
各パケット受信部は、出力調停部から使用許可信号(GNT信号)を受信したら、受信バッファからパケットを取出し、出力ポートへパケットを送出する機能を有している。
各パケット受信部は、以下に説明するように、パケット毎に調停の結果に応じてレイテンシ値を書き換える機能を有する。各パケット受信部は、出力先ポートの出力調停回路C2に調停リクエストを出力しても、直ぐにGNT信号が出力されない場合は、受信バッファからパケットを取り出すことなく、GNT信号を受信するまで待ち状態(調停待ち状態)となる。各パケット受信部は、この間、パケットヘッダのレイテンシフィールド値に待ち時間を加算し、レイテンシフィールドを更新する。すなわち、パケット受信部が調停待ち状態となった場合、その間、ヘッダのレイテンシフィールドを加算し続け、該値をレイテンシフィールド値として出力調停部へ出力し続ける。
クロスバ内の出力調停部は、調停回路C2を有している。調停回路C2は、クロスバ内の各ポートのパケット受信部から調停リクエストを受信した際に、それら調停リクエストから使用許可ポートを一つだけに決定し、該ポートに対し出力ポートの使用許可通知としてGNT信号を出力する。調停回路C2は、各パケット受信部から出力されているパケットヘッダ内のレイテンシフィールド値に基づいて出力ポートの使用を許可する優先調停機能を有している。この機能により、使用許可ポートを決定する際に、レイテンシ値が大きな調停リクエストに対して優先的に出力ポートの使用が許可される。
また、クロスバ内の出力調停部は、調停回路C2が決定した使用許可ポートからパケットを受信し、接続インタフェースに送出する機能を有するパケット送信部を有している。
次に、以上の構成を備えたシステムの動作について説明する。図3は本実施の形態の動作例を示している。図3は図1の構成とほぼ同じ構成で、各要素の番号も千番台が三千番台になっているだけである。動作の説明に登場しない部分は削除した。以降では図3を参照し、長経路のパケット転送における優先調停の動作および、調停競合で遅れたパケットに対する優先調停の動作の一例を説明する。
[動作例の説明における前提]
本動作例では、リクエスタCPU3010から送信先のハードウエア資源である共有資源IOH3320までの経路は、クロスバ3000、クロスバ3200およびクロスバ3300経由とする(経路1)。
本動作例では、リクエスタCPU3011から共有資源IOH3220までの経路は、クロスバ3000およびクロスバ3200経由とする(経路2)。
本動作例では、リクエスタCPU3110から共有資源IOH3220までの経路は、クロスバ3100、クロスバ3300およびクロスバ3200経由とする(経路3)。
経路の最短レイテンシ値は、本実施の形態の動作例においてはクロスバ1個当たりの通過レイテンシを10と設定される。即ち、経路1および経路3の最短レイテンシ値は30、経路2の最短レイテンシは20である。
また、本実施の形態の動作例において、調停待ち時間は一律15と設定される。
尚、パケットヘッダに設定するルーティング情報については、本実施の形態の動作説明では詳しく言及しないが、一般的なルーティング情報相当のものである。ルーティング情報は、クロスバ内で解析することにより、出力先のポートが判断できる情報を含んでいるものとして扱う。
[長経路のパケット転送における優先調停]
リクエスタCPU3010は共有資源IOH3220へのリクエストパケットを生成し、クロスバNC3000へ送出する。この際、リクエスタCPU3010は、共有資源IOH03220までのルーティング情報および最短レイテンシ値(=30)を自CPUのルーティングテーブルから求め、パケットのヘッダの行き先指定フィールドと、レイテンシフィールドに設定する。リクエスタCPU2010からのリクエストパケットはクロスバNC3000のポート0のパケット受信部に受信される。クロスバNC3000のポート0のパケット受信部は、受信したパケットのパケットヘッダ内の行き先指定フィールドを参照し、出力先はポート3と判断し、クロスバNC3000のポート3の出力調停部に対して調停リクエストを出力する。また、これと同時にリクエスタCPU3010からのリクエストパケットのレイテンシフィールド値(=30)もクロスバNC3000のポート3の出力調停部に対して出力する。
クロスバNC3000のポート0のパケット受信部がリクエスタCPU3010からのリクエストパケットを受信すると同時に、クロスバNC3000のポート1のパケット受信部は、リクエスタCPU3011から共有資源IOH3220行きのリクエストパケットを受信する。クロスバNC3000のポート1のパケット受信部は、受信したパケットのパケットヘッダ内の行き先指定フィールドを参照し、出力先はポート3と判断し、クロスバNC3000のポート3の出力調停部に対して調停リクエストを出力する。また、これと同時にリクエスタCPU3011からのリクエストパケットのレイテンシフィールド値(=20)もクロスバNC3000のポート3の出力調停部に対して出力する。
クロスバNC3000のポート3の出力調停部は、以下のように優先調停処理を実行する。出力調停部は、クロスバNC3000のポート0のパケット受信部とクロスバNC3000のポート1のパケット受信部から同時に調停リクエストを受信する。この時、クロスバNC3000のポート3の出力調停部はポート0とポート1から受信するレイテンシフィールド値(ポート0:ポート1=30:20)を比較し、より値の大きいポート0側のリクエストを優先的に通過させるリクエストであると判断して、クロスバNC3000のポート0に対してGNT信号を出力する。
クロスバNC3000のポート3の出力調停部からGNT信号を受信したクロスバNC3000のポート0のパケット受信部は、該パケットをクロスバNC3000のポート3に送出する。この際、調停による待ち時間は無いため、パケットヘッダのレイテンシフィールドの加算は行われない。
クロスバNC3000のポート3から出力されたリクエスタCPU3010からのリクエストパケットは、クロスバNC3200のポート2のパケット受信部に受信され、クロスバNC3200のポート3の出力調停部へ送出される。ここでは他のパケットとの競合は無いため、パケットは調停無しで通過する。調停で待たされることが無いため、パケットヘッダのレイテンシフィールド値は加算されない。
クロスバNC3200のポート3から送出されたリクエスタCPU3010からのリクエストパケットは、クロスバNC3300のポート2のパケット受信部に受信され、クロスバNC3300のポート1の出力調停部へ出力される。ここでも他のパケットとの競合は無いため、パケットは調停無しで通過する。調停で待たされることが無いため、パケットのヘッダのレイテンシフィールド値は加算されない。
クロスバNC3300のポート1から共有資源IOH3320に到達したリクエスタCPU3010からのリクエストパケットの転送経路における総レイテンシは、該パケットヘッダのレイテンシフィールドの値と一致する。そのため、本動作例の場合、該パケットは最短レイテンシ(レイテンシフィールドの値=30)で共有資源IOH3320への経路を通過する。
本動作例では、リクエスタCPU3010からのリクエストパケットの転送経路において、出力調停部での競合が1回しかなかった。しかし、この経路上の全てのクロスバ内で競合が起きた場合、計3回、調停競合が発生し、各調停部においてレイテンシ値の比較による優先調停が行われる。この場合、競合相手のパケットが一度も調停待ちを行っていないパケットであるならば、本構成例において最長経路であるクエスタCPU3010からのリクエストパケットより優先なパケットは存在しない。そのため、競合があったケースにおいても、該パケットは最短レイテンシで通過できる可能性が高い。
[調停競合で遅れたパケットの優先調停]
リクエスタCPU3010は共有資源IOH3220へのリクエストパケットを生成し、クロスバNC3000へ送出する。この際、リクエスタCPU3010は、共有資源IOH03220までのルーティング情報および最短レイテンシ値をルーティングテーブルRから求め、パケットのヘッダの行き先指定フィールドF1と、レイテンシフィールドF2に設定する。
リクエスタCPU3011からのリクエストパケットはクロスバNC3000のポート1のパケット受信部に受信される。クロスバNC3000のポート1のパケット受信部は、受信したパケットのパケットヘッダ内の行き先指定フィールドF1を参照し、出力先はポート3と判断し、クロスバNC3000のポート3の出力調停部に対して調停リクエストを出力する。これと同時にリクエスタCPU3011からのリクエストパケットのレイテンシフィールドF2の値=20もクロスバNC3000のポート3の出力調停部に対して出力する。
クロスバNC3000のポート1のパケット受信部がリクエスタCPU3011からのリクエストパケットを受信すると同時に、クロスバNC3000のポート0のパケット受信部は、リクエスタCPU3010から共有資源IOH3320行きのリクエストパケット(レイテンシフィールド値=30)を受信する。クロスバNC3000のポート0のパケット受信部は、ポート1のパケット受信部と同じく、クロスバNC3000のポート3の出力調停部に対して調停リクエストを出力する。
クロスバNC3000のポート3の出力調停部は、クロスバNC3000のポート0のパケット受信部とクロスバNC3000のポート1のパケット受信部から同時に調停リクエストを受信する。この時、クロスバNC3000のポート3の出力調停部はポート0とポート1から受信するレイテンシフィールド値(ポート0:ポート1=30:20)を比較し、値の大きいポート0側のリクエストを優先的に通過させるリクエストであると判断して、クロスバNC3000のポート0に対してGNT信号を出力する。クロスバNC3000のポート3の出力調停部は、ポート0のパケット受信部からポート3行きのパケット出力が完了するまで、ポート1に対するGNT信号の出力は抑止する。その間、クロスバNC3000のポート1のパケット受信部は調停待ち状態となる。
クロスバNC3000のポート1のパケット受信部は、調停待ち状態の期間中、CPU3011からのリクエストパケットのパケットヘッダのレイテンシフィールドに調停待ち時間を加算し続ける。また、該加算したレイテンシフィールド値を次回の調停のレイテンシ値として使用されるように、クロスバNC3000のポート3の出力調停部へ出力し続ける。
クロスバNC3000のポート3の出力調停部は、クロスバNC3000のポート0のパケット受信部がパケットの出力を完了すると、クロスバNC3000のポート1のパケット受信部に対してGNT信号を出力する。クロスバNC3000のポート3の出力調停部からGNT信号を受信したクロスバNC3000のポート1のパケット受信部は、調停による待ち時間(=15)をパケットヘッダのレイテンシフィールドに加算する。その結果、レイテンシ値=35の状態で、該パケットがクロスバNC3000のポート3に出力される。
クロスバNC3000のポート3から出力されたリクエスタCPU3011からのリクエストパケットは、クロスバNC3200のポート2のパケット受信部に受信される。クロスバNC3200のポート2のパケット受信部は、受信したリクエスタCPU3011からのリクエストパケットのパケットヘッダを解析し、共有資源IOH3220と接続するクロスバNC3200のポート1の出力調停部へ調停リクエストおよびレイテンシ値=35を出力する。
クロスバNC3200のポート2のパケット受信部がリクエスタCPU3011からのリクエストパケットを受信すると同時に、クロスバNC3200のポート3のパケット受信部は、リクエスタCPU3110から共有資源IOH3220行きのリクエストパケット(レイテンシフィールド値=30)を受信する。クロスバNC3200のポート3のパケット受信部は、ポート2のパケット受信部と同じく、クロスバNC3200のポート1の出力調停部に対して調停リクエストを出力する。
クロスバNC3200のポート1の出力調停部は、クロスバNC3200のポート2のパケット受信部とクロスバNC3200のポート1のパケット受信部から同時にリクエストを受信する。
本実施の形態の構成上、クロスバNC3200のポート2のパケット受信部に存在するリクエスタCPU3011からのリクエストパケットから共有資源IOH3220までの距離よりも、クロスバNC3200のポート3のパケット受信部に存在するリクエスタCPU3110からのリクエストパケットから共資源IOH3220までの距離の方が長距離である。そのため、最短レイテンシの値ではリクエスタCPU3110からのリクエストパケットの方が高優先のリクエストとなる。しかし、本実施の形態のケースでは、リクエスタCPU3011からのリクエストパケットのレイテンシ値の方が、クロスバNC3000で待たされた時間分が加算されている。従って、クロスバNC3200のポート1の出力調停部において、クロスバNC3200のポート2が高優先なポートと判断され、ポート2に対するGNT信号が先に出力される。
クロスバNC3200のポート1の出力調停部からGNT信号を受信したクロスバNC3200のポート2のパケット受信部は、該パケットをポート1に送出する。この際、調停による待ち時間は無いため、パケットヘッダのレイテンシフィールドの値は加算されない。
クロスバNC3200のポート1から送出され、共有資源IOH3220に到達したリクエスタCPU3011からのリクエストパケットの総レイテンシは、該パケットヘッダのレイテンシフィールドの値と一致する。そのため総レイテンシは、最短レイテンシにクロスバNC3000およびNC3200で待たされた時間を加えた値となる。本実施例の場合、調停待ち時間は、クロスバNC3000内での待ち時間の15だけであり、クロスバNC3200では優先的に通過したため待ち時間は無く、そのパケットは結果レイテンシ値=35で通過出来る。結果として、クロスバNC3000での調停待ち発生以降のレイテンシの低下は抑制されたことになる。
以上で説明した機構により、転送経路の長いリクエストパケットは優先的にクロスバ内の調停部を通過できる。また、途中経路の競合で待たされたパケットも、その後の競合においては優先的に経路を通過できる可能性が高くなる。
これらの効果から、ボトルネックとなりうる長経路のパケット、および、経路上の競合のために待たされたパケットのレイテンシの低下を抑制できる。その結果、大規模SMPコンピュータシステムの性能を改善することが可能となる。
優先調停システム、優先調停方法が適用されるシステムの構成を示す。 クロスバの構成と動作を説明するための図である。 パケットの転送について説明するための図である。 ルーティングテーブルとパケットヘッダを示す。
符号の説明
CPU1010、1011、1110、1111 リクエスタ
R1010、1011、1110、1111、1220、1221、1320、1321 ルーティングテーブル
NC1000、1100、1200、1300 クロスバ
IOH1220、1221、1320、1321 共有資源
C1 行き先解析回路
C2 調停回路
CPU3010、3011、3110 リクエスタ
R3010、3011、3110、3220、3320 ルーティングテーブル
IOH3220、3320 共有資源
R ルーティング
F1 行き先指定フィールド
F2 レイテンシフィールド

Claims (10)

  1. 複数のCPUと、
    前記複数のCPUからアクセスされる複数のハードウエア資源と、
    前記複数のCPUの各々に対応する記憶領域に設定され、自CPUと前記複数のハードウエア資源の各々とのレイテンシを示すレイテンシ情報を格納する複数のルーティングテーブルと、
    前記複数のCPUと前記複数のハードウエア資源との間で交換されるパケットのルーティングを行う複数のクロスバとを具備し、
    前記複数のCPUの各々は、送信パケットを前記複数のハードウエア資源のうちの送信先ハードウエア資源に送信するとき、前記複数のルーティングテーブルのうち自CPUに対応するルーティングテーブルにおいて前記送信先ハードウエア資源に対応する前記レイテンシ情報を前記送信パケットに付加し、
    前記複数のクロスバの各々は、複数のパケットを受信したとき、受信した複数のパケットの各々の前記レイテンシ情報を参照してレイテンシが大きいパケットを優先的に前記送信先ハードウエア資源の方に送信する優先調停処理を実行する
    優先調停システム。
  2. 請求項1に記載された優先調停システムであって、
    前記レイテンシ情報は前記複数のCPUの各々から前記複数のハードウエア資源の各々への片道レイテンシを示し、
    前記複数のハードウエア資源の各々は、返信パケットを前記複数のCPUのうちの送信先CPUに返信するとき、前記複数のCPUの各々への片道レイテンシを示す復路レイテンシ情報を格納するハードウエア資源側ルーティングテーブルを参照して、前記送信先CPUに対応する前記復路レイテンシ情報を前記返信パケットに付加し、
    前記複数のクロスバの各々は、前記複数のハードウエア資源の側から複数のパケットを受信したとき、受信した複数のパケットの各々の前記復路レイテンシ情報を参照して、レイテンシが大きいパケットを優先的に前記送信先CPUの方に送信する
    優先調停システム。
  3. 請求項1または2に記載された優先調停システムであって、
    前記複数のルーティングテーブルの各々は、前記複数のCPUのうちの自ルーティングテーブルに対応するCPUと前記複数のハードウエア資源の各々との間でのパケット転送のルートを示すルーティング情報を格納する
    優先調停システム。
  4. 請求項3に記載された優先調停システムであって、
    前記ルーティング情報は前記複数のCPUの各々から前記複数のハードウエア資源の各々へのルートを示し、
    前記複数のハードウエア資源側ルーティングテーブルの各々は、前記複数のハードウエア資源のうちの自ハードウエア資源側ルーティングテーブルに対応するハードウエア資源から前記複数のCPU資源の各々へのパケット転送のルートを示す復路ルーティング情報を格納する
    優先調停システム。
  5. 請求項1から4のいずれかに記載された優先調停システムであって、
    前記複数のクロスバの各々は、受信したパケットの前記レイテンシ情報を、前記優先調停処理による待ち時間を加算した値に更新する
    優先調停システム。
  6. 複数のCPUの各々に対応する記憶領域に、自CPUと複数のハードウエア資源の各々とのレイテンシを示すレイテンシ情報を格納する複数のルーティングテーブルを設定するステップと、
    前記複数のCPUの各々が、送信パケットを前記複数のハードウエア資源のうちの送信先ハードウエア資源に送信するとき、前記複数のルーティングテーブルのうち自CPUに対応するルーティングテーブルにおいて前記送信先ハードウエア資源に対応する前記レイテンシ情報を前記送信パケットに付加するステップと、
    前記複数のクロスバの各々が、複数のパケットを受信したとき、受信した複数のパケットの各々の前記レイテンシ情報を参照してレイテンシが大きいパケットを優先的に前記送信先ハードウエア資源の方に送信する優先調停処理を実行するステップ
    とを具備する優先調停方法。
  7. 請求項6に記載された優先調停方法であって、
    前記レイテンシ情報は前記複数のCPUの各々から前記複数のハードウエア資源の各々への片道レイテンシを示し、
    更に、前記複数のハードウエア資源の各々が、返信パケットを前記複数のCPUのうちの送信先CPUに返信するとき、前記複数のCPUの各々への片道レイテンシを示す復路レイテンシ情報を格納するハードウエア資源側ルーティングテーブルを参照して、前記送信先CPUに対応する前記復路レイテンシ情報を前記返信パケットに付加するステップと、
    前記複数のクロスバの各々が、前記複数のハードウエア資源の側から複数のパケットを受信したとき、受信した複数のパケットの各々の前記復路レイテンシ情報を参照して、レイテンシが大きいパケットを優先的に前記送信先CPUの方に送信するステップ
    とを具備する優先調停方法。
  8. 請求項6または7に記載された優先調停方法であって、
    前記複数のルーティングテーブルの各々は、前記複数のCPUのうちの自ルーティングテーブルに対応するCPUと前記複数のハードウエア資源の各々との間でのパケット転送のルートを示すルーティング情報を格納し、
    更に、前記複数のCPUの各々が、前記複数のルーティングテーブルのうち自CPUに対応するルーティングテーブルにおいて前記送信先ハードウエア資源に対応する前記ルーティング情報を前記送信パケットに付加するステップと、
    前記複数のクロスバの各々が、受信したパケットを前記ルーティング情報に設定されたルーティング先に転送するステップ
    とを具備する優先調停方法。
  9. 請求項8に記載された優先調停方法であって、
    前記ルーティング情報は前記複数のCPUの各々から前記複数のハードウエア資源の各々へのルートを示し、
    前記複数のハードウエア資源側ルーティングテーブルの各々は、前記複数のハードウエア資源のうちの自ハードウエア資源側ルーティングテーブルに対応するハードウエア資源から前記複数のCPU資源の各々へのパケット転送のルートを示す復路ルーティング情報を格納し、
    更に、前記複数のハードウエア資源の各々が、前記複数の復路ルーティングテーブルのうち自ハードウエア資源に対応する復路ルーティングテーブルにおいて送信先CPUに対応する前記復路ルーティング情報を前記返信パケットに付加するステップと、
    前記複数のクロスバの各々が、受信した前記返信パケットを前記復路ルーティング情報に設定されたルーティング先に転送するステップ
    とを具備する優先調停方法。
  10. 請求項6から9のいずれかに記載された優先調停方法であって、
    更に、前記複数のクロスバの各々が、受信したパケットのレイテンシ情報を、前記優先調停処理による待ち時間を加算した値に更新する
    優先調停方法。
JP2008031545A 2008-02-13 2008-02-13 優先調停システム及び優先調停方法 Expired - Fee Related JP4687925B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008031545A JP4687925B2 (ja) 2008-02-13 2008-02-13 優先調停システム及び優先調停方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008031545A JP4687925B2 (ja) 2008-02-13 2008-02-13 優先調停システム及び優先調停方法

Publications (2)

Publication Number Publication Date
JP2009194510A JP2009194510A (ja) 2009-08-27
JP4687925B2 true JP4687925B2 (ja) 2011-05-25

Family

ID=41076162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008031545A Expired - Fee Related JP4687925B2 (ja) 2008-02-13 2008-02-13 優先調停システム及び優先調停方法

Country Status (1)

Country Link
JP (1) JP4687925B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5573491B2 (ja) 2010-08-23 2014-08-20 日本電気株式会社 データ転送システム、スイッチ及びデータ転送方法プロセッサ間ネットワーク
JP5645253B2 (ja) * 2010-10-27 2014-12-24 Necプラットフォームズ株式会社 ノードコントローラ、リクエストの出力順序決定方法及びノード間通信システム
JP5821624B2 (ja) * 2011-12-27 2015-11-24 富士通株式会社 通信制御装置、並列計算機システム及び通信制御方法
JP6481427B2 (ja) 2015-03-10 2019-03-13 富士通株式会社 演算処理装置,情報処理装置,及び情報処理装置の制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08186577A (ja) * 1994-12-28 1996-07-16 Matsushita Electric Ind Co Ltd セル多重方法およびセル転送網
JP2000293495A (ja) * 1999-04-06 2000-10-20 Nec Eng Ltd ネットワーク装置
JP2004086304A (ja) * 2002-08-23 2004-03-18 Nec Computertechno Ltd 調停回路付きマトリックススイッチをもつ情報処理システム
JP2005173859A (ja) * 2003-12-10 2005-06-30 Matsushita Electric Ind Co Ltd メモリアクセス制御回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08186577A (ja) * 1994-12-28 1996-07-16 Matsushita Electric Ind Co Ltd セル多重方法およびセル転送網
JP2000293495A (ja) * 1999-04-06 2000-10-20 Nec Eng Ltd ネットワーク装置
JP2004086304A (ja) * 2002-08-23 2004-03-18 Nec Computertechno Ltd 調停回路付きマトリックススイッチをもつ情報処理システム
JP2005173859A (ja) * 2003-12-10 2005-06-30 Matsushita Electric Ind Co Ltd メモリアクセス制御回路

Also Published As

Publication number Publication date
JP2009194510A (ja) 2009-08-27

Similar Documents

Publication Publication Date Title
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
US8886861B2 (en) Memory interleaving device to re-order messages from slave IPS and a method of using a reorder buffer to re-order messages from slave IPS
US6674720B1 (en) Age-based network arbitration system and method
US8225027B2 (en) Mapping address bits to improve spread of banks
US20140204735A1 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of ip cores using high level specification
US8285903B2 (en) Requests and data handling in a bus architecture
US7512729B2 (en) Method and apparatus for a high efficiency two-stage rotating priority arbiter with predictable arbitration latency
US20140359195A1 (en) Crossbar switch, information processing apparatus, and information processing apparatus control method
US11874781B2 (en) Packet processing system, method and device utilizing a port client chain
JP4687925B2 (ja) 優先調停システム及び優先調停方法
KR100419679B1 (ko) 트랜잭션 요청 라우팅 방법
US10599347B2 (en) Information processing system, information processing apparatus, and method for controlling information processing system
US10402348B2 (en) Method and system for using feedback information for selecting a routing bus for a memory transaction
US20230269205A1 (en) Switch for transmitting packet, network on chip having the same, and operating method thereof
US20200192842A1 (en) Memory request chaining on bus
US9356873B2 (en) Backbone channel management method and backbone channel management apparatus
CN117176674B (zh) 片上网络及数据传输方法、芯片、设备
US9548947B2 (en) PPI de-allocate CPP bus command
US11093436B2 (en) Arithmetic processing device, information processing apparatus, and control method of the arithmetic processing device
CN115964982A (zh) 加速器的拓扑结构
JP4679601B2 (ja) パケット制御回路、パケット処理装置、および、パケット処理方法
US9413665B2 (en) CPP bus transaction value having a PAM/LAM selection code field
US9559988B2 (en) PPI allocation request and response for accessing a memory system
CN116686269A (zh) 一种路由器及片上系统
CN115695292A (zh) 一种基于片上网络的广播传输电路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110201

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees