JP2012064090A - 情報処理装置、情報処理システムおよび情報処理システムの通信方法 - Google Patents

情報処理装置、情報処理システムおよび情報処理システムの通信方法 Download PDF

Info

Publication number
JP2012064090A
JP2012064090A JP2010209008A JP2010209008A JP2012064090A JP 2012064090 A JP2012064090 A JP 2012064090A JP 2010209008 A JP2010209008 A JP 2010209008A JP 2010209008 A JP2010209008 A JP 2010209008A JP 2012064090 A JP2012064090 A JP 2012064090A
Authority
JP
Japan
Prior art keywords
circuit
information processing
information
processing apparatus
data
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
JP2010209008A
Other languages
English (en)
Inventor
Daisuke Mizoguchi
大介 溝口
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010209008A priority Critical patent/JP2012064090A/ja
Publication of JP2012064090A publication Critical patent/JP2012064090A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】通信速度の高速化を実現可能な情報処理装置、情報処理システムおよびその通信方法を提供する。
【解決手段】例えば、送信側の情報処理装置が送信動作(MWr1)を行い、これに応じて受信側の情報処理装置は、肯定応答(Ack1)を返信したのち、プロセッサ回路CPUを用いてMWr1に伴いバッファ回路BUF上に格納されたパケットデータの取り出しを行う。この際に、受信側は、BUF上のパケットデータの取り出しが完了した(すなわちBUFに空き容量が存在する)ことを意味する「UpdateFC1」を、実際にBUFに空き容量が存在する(BUFが開放される)よりも前の時刻(例えばAck1の直後)で返信する。送信側は、「UpdateFC1」に応じて次の送信動作(MWr2)を行う。
【選択図】図4

Description

本発明は、情報処理装置、情報処理システムおよびその通信方法に関し、特に、PCIe(PCI Express)規格に基づくインタフェース回路を備えた情報処理装置、および、PCIe規格に基づく通信を行う情報処理システムならびにその通信方法に適用して有効な技術に関する。
例えば、特許文献1には、バッファの予約許容値を求め、該予約許容値に基づき新たに受付けるデータフレームの予約制御を行うバッファ制御方式が示されている。特許文献2には、データが受信バッファマージンまで格納された場合にデータ送信中断の要求を行う受信バッファ制御装置において、受信バッファマージンをデータの伝送時間の計測によって定める構成が示されている。
特開平06−132975号公報 特開平06−290144号公報
近年、PCIシステムやPCI−Xシステムの後継となるPCIeシステムの普及が進んでいる。PCIeシステムでは、1レーン当たり2.5Gbpsでパケット転送を行う高速シリアルインタフェースが採用されると共に、パラレルインタフェースとなるPCIやPCI−Xシステムとの間でソフトウェアの互換性が保たれている。このパケット転送に際し、1パケット当たりのデータ(データペイロード)のサイズは、0〜4Kバイトの範囲で設定可能となっている。また、PCIeシステムでは、「受信側が、受信可能なバッファサイズを送信側に適宜に通知し、送信側が、このバッファサイズに基づいて受信側でオーバーフローが生じないようにデータ送信を行う」という特徴的なフロー制御方式が採用されている。
ここで、比較的大きなサイズのデータを転送したいような場合を想定する。前述したデータペイロードのサイズを例えば4Kバイトに設定した場合、PCIeシステムでは高速シリアル通信に伴い高いスループットが得られるため、PCIシステム等に比べて十分な通信速度を得ることが可能となる。しかしながら、データペイロードのサイズを例えば数バイトに設定し、この数バイトを単位として複数回の転送を行うような場合には、通信速度の低下が生じてしまう恐れがある。これは、PCIeシステムでは、通信プロトコルの複雑化に伴いレイテンシが増大するためであり、本発明者等の検討によって、その中でも特に、前述したフロー制御方式に伴うレイテンシの増大が大きな要因となり得ることが見出された。
具体的には、当該フロー制御方式を用いると、送信側は、受信バッファの空きを確認した上でパケット送信を行うため、例えば、「受信側が、送信側からのパケットを受信し、当該パケットを受信バッファから取り出す毎に送信側に受信バッファの空きを通知する」といった制御が必要となる。そうすると、パケット転送を1回行う毎に受信バッファの空きの通知が生じるため、パケット転送の回数が増えると、その分当該通知のオーバヘッドによりレイテンシが増大することになる。なお、前述したようにデータペイロードのサイズを比較的大きな値に設定すれば通信速度の向上がある程度図れるが、実際上、例えばPCIシステム等で用いたソフトウェアをPCIeシステムにそのまま流用したような場合などでこのような数バイト(例えば4バイト)単位の転送が生じ得る。
本発明は、このようなことを鑑みてなされたものであり、その目的の一つは、通信速度の高速化を実現可能な情報処理装置、情報処理システムおよびその通信方法を提供することにある。本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
本実施の形態による情報処理装置は、送信側から伝送線路を介して入力された第1サイズの受信データを格納するバッファ回路と、バッファ回路に受信データが格納された場合に当該受信データをバッファ回路から読み出すことでバッファ回路に第1サイズの空き容量を生成する処理回路と、第1回路および第2回路を備えたものとなっている。第1回路は、バッファ回路に第1サイズの空き容量が実際に存在しているか否かを逐次判別し、第2回路は、バッファ回路に第1サイズの空き容量が存在することを表す第1情報を伝送線路を介して送信側に返信する。ここで、第2回路は、第1回路がバッファ回路に第1サイズの空き容量が実際に存在していないと判別している段階で、第1情報を出力することが特徴となっている。
このように、第1情報を本来(実際にバッファ回路に空き容量が生成された段階)よりも早い段階で返信することで、バッファ回路上の受信データの読み出し動作と、第1情報に応じた送信側からの次の送信動作とを並行して行うことができ、通信速度の高速化が実現可能となる。
本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、通信速度の高速化が実現可能となる。
本発明の実施の形態1による情報処理装置において、その構成の一例を示すブロック図である。 (a)、(b)は、図1の情報処理装置で用いられるパケット構造の一例を示す説明図である。 図1の情報処理装置の主要な動作例を示す説明図であり、(a)は送信時の動作例、(b)は受信時の動作例を示すものである。 (a)は、図3の動作例に伴うタイミングシーケンスの一例を示す模式図であり、(b)は、(a)の比較例となるタイミングシーケンスの一例を示す模式図である。 (a)は、図3の動作例に伴う他のタイミングシーケンスの一例を示す模式図であり、(b)は、(a)の比較例となるタイミングシーケンスの一例を示す模式図である。 (a)は、図1の情報処理装置における主要部の詳細な構成例を示すブロック図であり、(b)は、(a)の比較例を示すブロック図である。 図6(a)の構成例の概略的な動作例を示すものであり、(a)は再送が生じない場合のタイミングシーケンス図、(b)は再送が生じる場合のタイミングシーケンス図である。 本発明の実施の形態1による情報処理システムにおいて、その構成の一例を示す概略図である。 図8の情報処理システムの動作例を示す説明図である。 本発明の実施の形態2による情報処理装置において、その構成の一例を示すブロック図である。 図10の情報処理装置の主要な動作例を示す説明図であり、(a)は送信時の動作例、(b)は受信時の動作例を示すものである。 図11の動作例に伴うタイミングシーケンスの一例を示す模式図である。 図12の比較例となるタイミングシーケンスの一例を示す模式図である。 図11の動作例に伴う他のタイミングシーケンスの一例を示す模式図である。 本発明の実施の形態3の情報処理装置において、再送信動作が生じる条件を簡略化して表すものであり、(a)はバッファ回路が1面の場合の説明図、(b)はバッファ回路が2面の場合の説明図である。 本発明の実施の形態3による情報処理装置において、その主要部の詳細な構成例を示すブロック図である。 (a)、(b)は、図6における投機時間調整回路のそれぞれ異なる動作例を示すフロー図である。 本実施の形態による代表的な効果の一例を示す説明図である。 本実施の形態による代表的な効果の一例を示す説明図である。
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
また、実施の形態の各機能ブロックを構成する回路素子は、特に制限されないが、公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような半導体基板上に形成される。以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
《情報処理装置の全体構成》
図1は、本発明の実施の形態1による情報処理装置において、その構成の一例を示すブロック図である。図1に示す情報処理装置SOCは、特に限定はされないが一つの半導体チップによって実現され、プロセッサ回路CPUと、メモリ回路MEMと、PCIeインタフェース回路PCIeIFと、これらの間のデータ通信経路となる内部バスIBSを備えている。PCIeIFは、CPUインタフェース回路CPUIF、バッファ回路BUF、トランザクションレイヤ処理回路TL、データリンクレイヤ処理回路DL、メディアアクセスレイヤ処理回路MAC、物理レイヤ処理回路PHYを備える。PCIeIFは、PCIe規格に基づく各種プロトコル処理を行い、ポートPTに接続されたPCIe用の伝送線路LNを介して外部装置との間でパケットの送受信を行う。LNは、ここでは簡略化しているが、実際には、差動型の全二重通信に対応した構成となっており、1個の通信経路(1レーン)当たり4本の伝送線路で構成される。なお、SOCにおける各回路の詳細な機能に関しては、以降にて適宜説明を行う。
図2(a)、(b)は、図1の情報処理装置で用いられるパケット構造の一例を示す説明図である。図2(a)には、トランザクションレイヤパケット(TLP)と呼ばれるパケット構造のフォーマットが示されている。TLPは、ヘッダHD、データペイロードDATおよびエラー検出符号ECRCからなり、送受信時に図1のTLによる処理対象となる。実際に送受信を行う際には、このTLPにシーケンス番号SEQおよびエラー検出符号LCRCが加えられ、これに対して更に、スタートシンボルSTPおよびエンドシンボルEDが加えられたパケット(ここではトランザクションパケットTLP’と呼ぶ)が用いられる。SEQおよびLCRCは、送受信時に図1のDL(およびMAC)による処理対象となり、STPおよびEDは、送受信時に図1のPHYによる処理対象となる。
ヘッダHDは、12バイト長または16バイト長の情報であり、例えば、当該パケットを特定の宛先に届けるためのルーティング情報RUTや、当該パケットのデータペイロードDATのサイズを表すデータペイロード長DATLなどを含んでいる。データペイロードDATには、最小0バイト〜最大4Kバイトの実データが格納される。エラー検出符号ECRCは、4バイト長の情報として図1のTLによって付加され、最終的な受信先(エンドポイント)がエラー有無を検出する際に使用される。なお、ECRCは省略することも可能である。シーケンス番号SEQは、2バイト長の情報であり、複数のパケットを転送する際に、各パケットの順序関係を示すものとして付加される。なお、受信側ではSEQを参照することでパケット欠け等を検出することができる。エラー検出符号LCRCは、4バイト長の情報として図1のDLによって付加され、最終的な受信先に到達する間に経由する各装置(後述する図8のSW等)がエラー有無を検出する際に使用される。スタートシンボルSTPおよびエンドシンボルEDは、それぞれ1バイト長の情報であり、パケット(フレーム)の始まりおよび終わりを識別するために図1のPHYによって付加される。
図2(b)には、データリンクレイヤパケット(DLLP)と呼ばれるパケット構造のフォーマットが示されている。前述したトランザクションレイヤパケット(TLP)は、最終的な受信先の上位レイヤ(トランザクションレイヤ以上)に向けたパケットであるが、データリンクレイヤパケット(DLLP)は、最終的な受信先に到達する間に経由する各装置の下位レイヤ(データリンクレイヤ以下)に向けたパケットとなっている。DLLPは、タイプTYP、データリンクデータDLDATおよびエラー検出符号CRCからなり、送受信時に図1のDL(およびMAC)による処理対象となる。実際に送受信を行う際には、このDLLPにスタートシンボルSDPおよびエンドシンボルEDが加えられたパケット(ここではデータリンクパケットDLLP’と呼ぶ)が用いられる。SDPおよびEDは、送受信時に図1のPHYによる処理対象となる。
タイプTYPは、例えば、1バイト長の情報であり、肯定応答(Ack)、否定応答(Nak)、またはフロー制御情報(UpdateFC)等を表す。データリンクデータDLDATは、タイプTYPの種類に応じた付加的な情報を表す。ここで、タイプTYPがフロー制御情報(UpdateFC)であるデータリンクレイヤパケット(DLLP)は、前述したように、相手先に対して自身の受信バッファの空き容量を通知する際に使用される。エラー検出符号CRCは、4バイト長の情報として図1のDLによって付加され、最終的な受信先に到達する間に経由する各装置(後述する図8のSW等)がエラー有無を検出する際に使用される。スタートシンボルSDPおよびエンドシンボルEDは、それぞれ1バイト長の情報であり、パケット(フレーム)の始まりおよび終わりを識別するために図1のPHYによって付加される。
《情報処理装置の全体動作》
図3は、図1の情報処理装置の主要な動作例を示す説明図であり、図3(a)は送信時の動作例、図3(b)は受信時の動作例を示すものである。ここでは、情報処理装置SOCがエンドポイント(後述する図8のEP)である場合を例として説明を行う。図3(a)に示すように、情報処理装置SOCが送信動作を行う際には、まず、プロセッサ回路CPUが、メモリ回路MEM上に送信データ(図2(a)のDATに対応)やその宛先データ(図2(a)のHDに対応)等を作成し、これらのデータを内部バスIBSやCPUインタフェース回路CPUIFを介してバッファ回路BUFに転送する(S101)。BUFは、特に限定はされないが、例えばSRAM(Static Random Access Memory)等で構成され、その容量値は、例えば1回のパケット転送に伴う各種データを格納するのに必要な大きさに定められる。
次いで、データリンクレイヤ処理回路DLは、外部の相手先からPHY、MAC、DLを介して「UpdateFC」を表すデータリンクレイヤパケット(DLLP)(図2(b))を受けた際、当該DLLPから相手先における受信バッファの空き容量を検出し、この空き容量をトランザクションレイヤ処理回路TLに通知する(S102)。これを受けて、TLは、必要な空き容量が有る場合、前述したBUF上の送信データおよび宛先データ等からトランザクションレイヤパケット(TLP)を生成し、データリンクレイヤ処理回路DLに伝送する(S103)。なお、この際に、TLは、必要に応じてエラー検出符号(図2(a)のECRC)を付加する。
続いて、データリンクレイヤ処理回路DLは、前述したTLからのTLPを一時的に内部の再送バッファ回路(図示せず)に蓄える。そして、DLは、当該TLPにシーケンス番号(図2(a)のSEQ)やエラー検出符号(図2(a)のLCRC)を付加してメディアアクセスレイヤ処理回路MACに送信する(S104)。MACは、スタートシンボルおよびエンドシンボル(図2(a)のSTP,ED)を付加することで前述したトランザクションパケット(TLP’)を生成し、さらに、電磁波干渉(EMI)を低減するためのスクランブリング等を行い、それを物理レイヤ処理回路PHYに送信する(S104b)。PHYは、このDLおよびMACからの送信情報(パラレル信号)をシリアル信号に変換し、例えばクロックデータリカバリを行うための8B/10B符号化等を行う。そして、PHYは、これを用いて伝送線路LNに向けて送信動作(MWr)を行う(S105)。
一方、図3(b)に示すように、情報処理装置SOCが受信動作を行う際には、まず、PHYが、図3(a)の送信動作(MWr)で送出されたTLP’を受け、図3(a)の場合とは逆に8B/10B復号化、シリアル・パラレル変換等を行い、MACおよびDLに伝送する(S106)。MACおよびDLは、このPHYからの受信情報におけるシーケンス番号SEQやエラー検出符号LCRCを確認し、その結果問題が無ければPHYを介してデータリンクレイヤパケット(DLLP)を用いて肯定応答(Ack)を返信し、問題が有ればDLLPを用いて否定応答(Nak)を返信する(S107)。更に、本実施の形態のSOCでは、DLおよびTLが、バッファ回路BUFの使用状態を認識し、例えばBUFの使用期間中に前述したPHYからの受信情報を受けた際にも、否定応答(Nak)を返信することが特徴となっている。図3(a)に示した送信側のDLおよびTLは、「Ack」を受信した際には前述した再送バッファ回路のTLPを消去し、「Nak」の受信をした際には再送バッファ回路のTLPを用いて再送信を行う(S108)。
図3(b)において、ここでは、S107で「Ack」が返信されたものとして、DLおよびTLは、前述したPHYを介した受信情報からTLPを抽出し、それをTLに伝送する(S109)。TLは、このMACおよびDLからのTLPをCPUIFを介してバッファ回路BUFに格納し、当該TLPにおけるヘッダ(図2(a)のHD)や場合によってはエラー検出符号(図2(a)のECRC)の確認を行う(S110)。その後、TLは、CPUに対して通知を行い、これを受けて、CPUは、BUF上の格納データをCPUIFや内部バスIBSを介してメモリ回路MEMに転送する(S112)。CPUは、このMEM上のデータを用いて所定の処理を行う。
ここで、本実施の形態1の情報処理装置SOCでは、図3(b)に示す受信側のTLが、前述したS109でのTLPの伝送を受けてから、実際にバッファ回路BUFに空き容量が生じるまでのいずれかのタイミングで、データリンクレイヤパケット(DLLP)を用いて「UpdateFC」を送出する(S111)ことが特徴となっている。すなわち、図3(b)において、実際にBUFに空き容量が生じるのは前述したS112の処理によりBUFからMEMに向けた格納データの転送が完了した以降となるが、本実施の形態のSOCでは、それよりも早いタイミングで「UpdateFC」を返信する。言い換えれば、受信側のTLが、実際にはBUFに空き容量が生じていないにも関わらず、空き容量が生じたものとして「UpdateFC」を返信する。図3(a)の送信側におけるTLは、この「UpdateFC」を受けて、前述したS103以降の処理によって次のパケットの送信を開始する。
《情報処理装置の全体動作タイミング》
図4(a)は、図3の動作例に伴うタイミングシーケンスの一例を示す模式図であり、図4(b)は、図4(a)の比較例となるタイミングシーケンスの一例を示す模式図である。図4(a)、図4(b)の例では、送信側のプロセッサCPUが送信パケットの生成を開始してから受信側のバッファ回路BUFに当該パケットデータが格納されるまでの送信動作(MWr)に要する期間を3程度としている。また、受信側のデータリンクレイヤ処理回路DL(およびメディアアクセスレイヤ処理回路MAC)が「Ack」を返信したのち、これを送信側が受け取るまでに要する期間と、受信側のトランザクションレイヤ処理回路TLが「UpdateFC」を返信したのち、これを送信側が受け取るまでに要する期間を、それぞれ2程度としている。更に、受信側のCPUが、受信側のBUFに格納されたパケットデータをメモリ回路MEM上に全て取り出すまでに要する期間を4程度としている。
この場合、本実施の形態1の情報処理装置SOCを用いると、図4(a)に示すように、1回のパケット転送に要する実効的な期間を5程度とすることが可能となる。図4(a)では、送信側がt=0の時刻から送信動作(MWr1)を開始し、受信側のBUFがこのMWr1に伴うパケットデータの格納動作を約t=3の時刻で完了する。このMWr1に際し、約t=2の時刻で受信側のDL(およびMAC)が「Ack1」を返信し、これに続けて受信側のTLが「UpdateFC1」を返信している。この「Ack1」および「UpdateFC1」は、t=5の時刻よりも前に送信側によって受け取られ、これを受けて送信側は約t=5の時刻から次のパケットの送信動作(MWr2)を開始する。
また、これと並行して、受信側のCPUは、約t=3の時刻から送信動作(MWr1)に伴うBUF上のパケットデータをMEM上に取り出し、この取り出し動作を約t=7の時刻で完了する。ここで、送信動作(MWr2)に伴う送信パケットは、約t=7の時刻で受信側のDL(およびMAC)に到達するが、この時刻では、受信側のBUFは開放状態となっているため、受信側のDL(およびMAC)は、このt=7の時刻で「Ack2」を返信する。また、受信側のBUFは、このMWr2に伴うパケットデータの格納動作を約t=8の時刻で完了し、受信側のCPUは、このt=8の時刻からMWr2に伴うBUF上のパケットデータの取り出しを開始する。
このように、図4(a)では、受信側が「UpdateFC」を返信したのち、これに応じた送信パケットを受信側が受信するまでに要するレイテンシ(この例では約5期間)を予め考慮し、このレイテンシの期間と並行して受信側のCPUがBUF上のパケットデータを取り出せるように、「UpdateFC」を本来よりも早めに送出している。すなわち、本実施の形態のSOCは、t=2〜3の時刻(すなわちTLがDLからの送信パケットの伝送を認識した直後)を最も早いタイミングとし、約t=7の時刻(すなわち実際にBUFが開放される直前)を最も遅いタイミングとして「UpdateFC」を早出しするものである。図4(a)には、「UpdateFC」を最も早いタイミングで返信した場合の例が示されている。この最早のタイミングを用いた場合でも、この例ではレイテンシの期間よりも1パケット当たりのBUFの使用期間(CPUによる取り出し期間)が若干短いため、BUFの使用期間中に次ぎのパケットが送信されてくるような事態が生じず、BUFをほぼ連続的に使用可能となっている。ただし、仮にレイテンシの期間よりも1パケット当たりのBUFの使用期間が長いような場合には、その分だけ「UpdateFC」を返信するタイミングを遅らせることが望ましい。
一方、本発明の比較例として検討した情報処理装置では、図4(b)に示すように、1回のパケット転送に要する実効的な期間が10程度となる。当該装置では、図4(a)の場合と異なり、例えば、約t=7の時刻で実際に受信側のBUFが開放されるのを確認した上で受信側のTLが「UpdateFC1」を返信している。この場合、前述したレイテンシの期間において受信側のBUFに待ち時間が生じることになる。その結果、この図4(a)、図4(b)の例では、本実施の形態1の情報処理装置SOCを用いることで、比較例の情報処理装置に比べて2倍程度の高速化を図ることが可能となる。なお、図4(a)において、例えば、一時的にレイテンシが早まったり、あるいは一時的にBUFの使用期間が延びる等によってBUFの使用期間中に次のパケットが送信されてくることも予想される。この場合、図3(b)で述べたように、受信側のDLがデータリンクレイヤパケット(DLLP)を用いて否定応答(Nak)を返信することで、パケットの欠落を回避できる。この場合の動作例を次に説明する。
図5(a)は、図3の動作例に伴う他のタイミングシーケンスの一例を示す模式図であり、図5(b)は、図5(a)の比較例となるタイミングシーケンスの一例を示す模式図である。図5(a)の動作例では、前述した図4(a)の動作例と異なり、受信側のCPUがBUF上のパケットデータをMEM上に取り出すのに要する期間が5程度に延びている。これに伴い、約t=7の時刻において、受信側のデータリンクレイヤ処理回路DLは、送信動作(MWr2)に応じて「Nak2」を返信している。送信側のDLは、約t=9の時刻において、この受信側からの「Nak2」に応じて自身の再送バッファ回路を用いて再送信動作(MWr2(再送))を行う。このMWr2に伴うデータは受信側のBUFによって正常に格納される。
したがって、図5(a)に示すように、再送信が生じた場合には、1回のパケット転送に要する実効的な期間は8程度となる。一方、図5(b)に示す動作例は、前述した図4(b)の動作例と異なり、図5(a)の場合と同様に受信側のCPUがBUF上のパケットデータをMEM上に取り出すのに要する期間が5程度に延びている。これに伴い、1回のパケット転送に要する実効的な期間は11程度となる。その結果、この図5(a)、図5(b)の例では、本実施の形態1の情報処理装置SOCを用いることで、仮に再送信が生じた場合でも、比較例の情報処理装置に比べて高速化を図ることが可能となる。ただし、再送信動作が生じると、それが生じない場合に比べると通信速度の低下が生じるため、「UpdateFC」の早出しタイミングは、できるだけ再送信動作を生じさせない最も早いタイミングとすることが望ましい。
《情報処理装置の主要部の詳細構成および動作》
図6(a)は、図1の情報処理装置における主要部の詳細な構成例を示すブロック図であり、図6(b)は、図6(a)の比較例を示すブロック図である。図6(a)には、図3(b)に示した受信側の情報処理装置SOCにおけるトランザクションレイヤ処理回路TLおよびデータリンクレイヤ処理回路DL周りの構成例が一部抽出して示されている。ここでは、前述した「UpdateFC」の早出し(投機実行)を実現するため、TLおよびDLに加えて、これに連動して動作する投機実行制御回路SECTLが備わっていることが主要な特徴となっている。DLは、CRC判定回路CRCJGと、Ack/Nak生成回路ANGENを備えている。TLは、バッファライト制御回路WTCTLと、クレジット演算回路CCALと、UpdateFC生成回路FCGENを備えている。SECTLは、受信可否判定回路RXJGと、投機クレジット値決定回路CRSETと、遅延回路DLYと、CRC判定結果保持回路LT_CRCJGと、Ack/Nak送信判定回路ANJGを備えている。
図7は、図6(a)の構成例の概略的な動作例を示すものであり、図7(a)は再送が生じない場合のタイミングシーケンス図、図7(b)は再送が生じる場合のタイミングシーケンス図である。図7(a)に示すように、受信時には、まず、図6(a)のDLに、受信パケットデータRXDAT、パケット開始信号ST、パケット終了信号ENDが入力される。STは、DLよりも下位のレイヤ(図1のPHYまたはMAC)が図2(a)のスタートシンボルSTPを検出することで生成され、ENDは、同様に、下位のレイヤが図2(a)のエンドシンボルEDを検出することで生成される。また、RXDATは、図2(a)におけるSTPとEDに挟まれた各種パケットデータを下位のレイヤ(図1のPHY)がパラレル変換することで生成される。これによって、DLには、時系列的に、ST→RXDAT→ENDという順番で入力が行われる。
DL内のCRC判定回路CRCJGは、STもしくはENDを起点としたRXDATの受信サイクル数によってRXDAT内におけるエラー検出符号(図2(a)および図7(a)のLCRC)の位置を認識する。CRCJGは、このエラー検出符号LCRCによってエラーの有無を判定し、その判定結果を投機実行制御回路SECTLのCRC判定結果保持回路LT_CRCJGに出力し、LT_CRCJGは、当該判定結果を保持する。なお、図6(a)では省略しているが、DLは、同様にして、RXDAT内におけるシーケンス番号(図2(a)のSEQ)を識別し、そのエラー有無の判定等も行う。
一方、図6(a)に示すように、RXDAT、ST、ENDは、DLを介してTLにも入力される。TL内のクレジット演算回路CCALは、前述したCRCJGの場合と同様にして、RXDAT内のヘッダにおけるデータペイロード長(図2(a)および図7(a)のDATL)の認識ならびに取り込みを行う。また、CCALには、図1のCPUインタフェース回路CPUIFからフルクリア信号FLCLおよびクリアサイズ情報CL_SIZEが入力される。FLCLは、前述したように、CPUによってBUF上のパケットデータがMEM上に取り出されることにより当該BUF上のパケットデータが不要となった(BUFが開放された)際に出力される信号であり、CL_SIZEは、この際の開放されたサイズを表す。したがって、CCALは、データペイロード長DATLを取り込んだ際に減算を行い、FLCLが入力された際にCL_SIZEを加算することでBUFにおける受信可能な空き容量を逐次把握している。FLSETは、CPUIFに対し、バッファへのデータ格納完了を示す信号であり、これはつまり、受信パケットが正常であった事を意味する。FLSET信号のアサートを持って、CCALは受信クレジット値を決定する。
ここで、投機実行制御回路SECTL内の受信可否判定回路RXJGは、受信クレジット演算回路CCALの演算結果を監視している。CCALにおいて、前述したようにデータペイロード長DATLの取り込みと減算が行われた際、その演算結果にオーバーフローが生じなかった場合、RXJGは、オーバーフロー無しの情報をTL内のWTCTL、SECTL内のCRSETおよびANJGに通知する。すなわち、CCALでは、DATLを減算した際にDATLがBUFの空き容量以内の場合にはオーバーフローが生じない。これは、データを正常にBUFに格納できることを意味する。
TL内のバッファライト制御回路WTCTLは、前述したCRCJGの場合と同様にして、RXDAT内においてBUFに格納したいデータ(例えば、図2(a)のHD,DAT,ECRC等)が入力されるサイクルを認識し、図7(a)に示すように、当該サイクルでライトイネーブル信号WT_ENを有効状態にする。BUFは、このWT_ENの有効状態を受けて、RXDAT内の必要なデータを格納する。また、WTCTLは、ENDに応じてCPUIFに向けてフルセット信号FLSETを出力する。ここで、このWT_ENならびにFLSETの制御に際し、WTCTLは、前述したSECTL内の受信可否判定回路RXJGからのオーバーフロー有無の情報を受け、これに応じて、WT_ENの有効/無効ならびにFLSETの出力有無を制御する。図7(a)の場合には、オーバーフロー無しであるため、WTCTLは、WT_ENの有効状態を維持し、また、FLSETの出力を行う。
仮に、BUFへの書き込みが高速で行われるものとして、CPUは、このフルセット信号FLSETをCPUIFを介して割り込み信号として受けることでBUFに必要なデータが格納されたことを認識し、当該データのMEMへの取り出し動作を開始することができる。なお、図6(a)において、WTCTLは、更に、CPUIFに向けてライト済みサイズ情報WT_SIZEを出力している。WT_SIZEは、例えばこのWT_ENを発行したサイクル数をカウントすること等で算出され、実際にBUFに書き込みを行ったサイズを意味する。このWT_SIZEは、例えば、パケット内のデータ欠け等を検出する際などで使用される。
SECTL内のAck/Nak送信判定回路ANJGは、RXJGからのオーバーフロー有無の情報と、LT_CRCJGの保持情報とを受けて動作する。具体的には、オーバーフロー無しで、かつLT_CRCJGの保持情報に問題が無い(すなわちエラー検出符号LCRCにエラーが無い)場合には「Ack」判定とし、そうでない場合には「Nak」判定とする。そして、その判定結果をDL内のAck/Nak生成回路ANGENに出力する。ANGENは、この判定結果に応じて送信側に向けてデータリンクレイヤパケット(DLLP)を用いて肯定応答「Ack」または否定応答「Nak」を返信する。図7(a)の場合には、オーバーフロー無しであり、かつLT_CRCJGの保持情報にも問題が無いものとして、「Ack」を返信している。
SECTL内の投機クレジット値決定回路CRSETは、TL内のクレジット演算回路CCALが取り込んだデータペイロード長DATLと、RXJGからのオーバーフロー有無の情報と、WTCTLからのフルセット信号FLSETを受けて動作する。具体的には、CRSETは、オーバーフロー無しの場合、FLSETをトリガとしてDATLを遅延回路DLYに出力し、DLYはこのDATLを所定の時間遅延させたのちTL内のUpdateFC生成回路FCGENに出力する。FCGENは、これに応じて、データリンクレイヤパケット(DLLP)を用いてこのDATLを空き容量とする「UpdateFC」を生成し、送信側に返信する。図7(a)の例では、このDLYの遅延時間がゼロである場合(すなわち「UpdateFC」の送出タイミングを早く設定した場合)を示しているが、前述したように、このDLYの遅延時間を適宜設定することで、再送信動作が生じないように「UpdateFC」の送出タイミングを遅らせることも可能である。
一方、図7(b)においては、前述した図7(a)の場合と異なり、TL内のクレジット演算回路CCALでオーバーフローが生じている。オーバーフロー有りの場合とは、データペイロード長DATLがBUFの空き容量よりも大きく、データを正常にBUFに格納できないことを意味する。この場合、SECTL内の受信可否判定回路RXJGがTL内のバッファライト制御回路WTCTLにオーバーフロー有りの情報を通知することで、WTCTLは、ライトイネーブル信号WT_ENを有効状態から無効状態に遷移させ、また、フルセット信号FLSETの出力を行わないように制御する。これを受けて、BUFへの書き込み動作が中断され、BUF上のデータの喪失が防止できる。なお、実際には、図7(b)から判るように、WT_ENが有効状態の間にヘッダ部分の一部がBUFへ書き込まれることになるが、通常、この部分の上書きは特に問題とならない。ただし、この部分の上書きが問題となる場合には、RXDATが実際にBUFに書き込まれるまでのレイテンシを適宜調整すればよい。なお、CCALは、DATLの減算によってオーバーフローが生じた場合には、その後、当該DATLの減算を取り消すことによって、BUFの空き容量の情報を正しい情報に戻す。
SECTL内のAck/Nak送信判定回路ANJGは、RXJGからのオーバーフロー有りの情報を受けて「Nak」判定を行い、その判定結果をDL内のAck/Nak生成回路ANGENに出力する。ANGENは、この判定結果に応じて送信側に向けてデータリンクレイヤパケット(DLLP)を用いて否定応答「Nak」を返信する。前述したように、送信側は、この「Nak」の返信に応じて送信パケットの再送信を行うことになる。また、SECTL内の投機クレジット値決定回路CRSETは、RXJGからオーバーフロー有りの情報を受けると共に、フルセット信号FLSETの入力が行われないため、DLYを介したTL内のUpdateFC生成回路FCGENに向けた出力動作を特に行わない。その結果、FCGENは、「UpdateFC」の生成を行わない。
以上のように、図6(a)の構成例ならびに図7(a)、図7(b)の動作例を用いることで、これまでに説明した「UpdateFC」の早出し動作(投機実行)を実現可能となる。この際に、図6(a)の構成例は、比較例となる図6(b)の構成例に対して投機実行制御回路SECTLを追加し、また接続関係の一部を変更すればよいため、実現が比較的容易であり、また面積オーバヘッドもさほど問題とならない。図6(b)の構成例は、前述した図4(b)等の動作に対応するものであり、図6(a)の構成例と比較すると、SECTLが存在せず、また、CCALの出力がFCGENに、CRCJGの出力がANGENにそれぞれ入力されると共に、FCGENがフルクリア信号FLCLを受けて動作するものとなっている。特に大きな相違点は、FCGENが、CPUによってBUFが開放された際に出力されるFLCLを受けて「UpdateFC」を出力する点にあり、この場合だと図6(a)の構成例と比較して通信速度の低下が生じ得る。
《情報処理システムの全体構成》
図8は、本発明の実施の形態1による情報処理システムにおいて、その構成の一例を示す概略図である。図8の情報処理システムは、1個のPCIeルートポートRTと、複数(ここでは3個)のPCIeスイッチSW0〜SW2と、複数(ここでは8個)のPCIeエンドポイントEP0〜EP7を備え、これらがRTを頂点としてPCIe用の伝送線路によりツリー状に接続された構成となっている。この例では、RTにSW0、EP4、SW2が接続され、SW0にEP0、SW1、EP3が接続され、SW1にEP1、EP2が接続され、SW2にEP5〜EP7が接続される。RT、SW0〜SW2、およびEP0〜EP7のそれぞれは、少なくとも図1に示したPCIeインタフェース回路PCIeIFを備えており、これによってPCIe規格に基づく相互間の通信が可能となっている。
当該情報処理システムは、特に限定はされないが、代表的には、プリント配線基板と、複数のカードデバイス等の実装形態を持つ。プリント配線基板上には、PCIeルートポートに対応するデバイスやPCIeスイッチに対応するデバイスの全て又は一部や、PCIeスイッチに接続される複数のカードコネクタ等が実装される。そして、当該カードコネクタにPCIeエンドポイントや、場合によってはPCIeスイッチ機能を持つカードデバイスが外部接続される。
PCIeルートポートRTは、ルートコンプレックス等とも呼ばれ、例えば、図8の情報処理システム全体の初期化や帯域制限(QoS)等を行う。PCIeエンドポイントEP0〜EP7は、ツリーの末端に位置し、それぞれ所定のアプリケーションを実現する。PCIeスイッチSW0〜SW2は、それぞれ複数のポートを備えると共に当該ポート間でルーティングを行う。すなわち、あるポートから入力されたパケットのヘッダ(図2(a)のHD(RUT))を参照し、その内容に応じて当該パケットを特定のポートに転送する。なお、本実施の形態による情報処理システムは、勿論、図8に構成例に限らず、PCIe規格に基づいてPCIeルートポート、PCIeスイッチ、PCIeエンドポイントを適宜組み合わせた構成であればよい。また、加えて、PCIeと従来のPCIやPCI−X等をプロトコル変換する所謂PCIeブリッジを含んでいてもよい。
《情報処理システムの全体動作》
図9は、図8の情報処理システムの動作例を示す説明図である。ここでは、PCIeエンドポイントEP1がPCIeエンドポイントEP7を受信先として送信パケットを出力する場合を例としている。この場合、まず、EP1がSW1に向けて送信動作([1]MWr)を行い、SW1が肯定応答([2]「Ack」)を返信し、これに続けて「UpdateFC」([3]UpdateFC)を早出しで返信する。次いで、SW1は、送信動作([1]MWr)に伴うパケットのヘッダを参照することでルーティングを行い、その結果、SW0に向けて送信動作([4]MWr)を行う。これを受けて、SW0は、肯定応答([5]「Ack」)を返信し、これに続けて「UpdateFC」([6]UpdateFC)を早出しで返信する。以降、同様にして、SW0からRTに向けた転送と、RTからSW2に向けた転送が順次行われ、最後に、SW2がEP7に向けて送信動作([13]MWr)を行い、EP7が肯定応答([14]「Ack」)を返信し、これに続けて「UpdateFC」([15]UpdateFC)を早出しで返信する。これによって、EP1からEP7に向けた1回のパケット転送が完了する。
ただし、例えば、EP1が従来のPCIシステムやPCI−Xシステムのソフトウェアを使用しているような場合には、通常、1回のパケット転送では終わらずに、EP7に向けて例えば数バイト単位で連続して複数回の転送が行われることになる。この場合、各装置間(EP1とSW1間、SW1とSW0間、…、SW2とEP7間)で前述した図4(a)、図4(b)に示した転送が行われるものとすると、本実施の形態の情報処理装置SOCを用いることで、比較例を用いた場合と比べてEP1からEP7に向けた通信に要する時間を半分程度にすることが可能となる。なお、図9の例では、EP1からEP7に到るまでに4個の装置を中継しているが、この中継する装置数は、情報処理システムの構成に応じて変わり、その数が多くなるほど通信に要する時間が長くなる。したがって、この中継する装置数が多くなるほど(すなわちツリー構造がより深くなるほど)、本実施の形態を用いて通信時間の短縮を図ることがより有益となる。
以上、本実施の形態1の情報処理装置または情報処理システムを用いることで、代表的には通信速度の高速化が実現可能となる。また、見方を変えると、バッファ回路BUFの容量が小さい場合でも、見かけ上、バッファ回路の容量が大きい場合と同等の通信速度を得ることができ、これによって回路面積の低減や製造コストの低減等が図れる。すなわち、通信速度の高速化を図る手法として、バッファ回路の容量を増やすことが考えられる。具体的には、1回のパケット転送に伴う各種データを格納するのに必要な容量を1面とすると、バッファ回路を2面以上設け、各面をそれぞれ並行して使用するような手法が考えられる。本発明者等の検討によれば、例えば、バッファ回路を1面設けると共に前述した「UpdateFC」の早出し機能を持たせた場合と、バッファ回路を2面設けると共に「UpdateFC」の早出し機能を持たせない場合とで、ほぼ同等の通信速度が得られるという結果が得られた。
なお、本実施の形態では、受信側が送信パケットを受信する毎に「UpdateFC」を返信する構成例としたが、例えばPCIe規格では「UpdateFC」を返信する最長間隔は30μs以下と規定されている。通常、受信側が送信パケットを受信する間隔は、この値よりも十分に小さい値となるため、動作期間中に関しては規格をほぼ満たすことが可能となる。さらに規格を確実に満たすためには、タイマ回路等に基づく「UpdateFC」の返信機能を別途設けることが望ましい。すなわち、当該機能を用いると、例えば、「UpdateFC」を発行した時点からタイマ回路を動作させ、タイマ回路によって所定の期間を経過した場合には、「UpdateFC」を自動的に発行される。
(実施の形態2)
《情報処理装置の全体構成および動作》
前述した実施の形態1では、1面のバッファ回路を持つ情報処理装置の構成例を示したが、本実施の形態2では、2面のバッファ回路を持つ情報処理装置の構成例について説明する。1面とは、前述したように、1回のパケット転送に伴う各種データを格納するのに必要な容量を意味する。図10は、本発明の実施の形態2による情報処理装置において、その構成の一例を示すブロック図である。図10に示す情報処理装置SOC2は、図1の情報処理装置SOCと比較して、PCIeインタフェース回路PCIeIF2内のCPUインタフェース回路CPUIFに2個(2面)のバッファ回路BUF1,BUF2が接続されている点が異なっている。それ以外の構成に関しては、図1と同様であるため詳細な説明は省略する。
図11は、図10の情報処理装置の主要な動作例を示す説明図であり、図11(a)は送信時の動作例、図11(b)は受信時の動作例を示すものである。ここでは、前述した図3(a)、図3(b)の場合と同様に、情報処理装置SOC2がエンドポイント(前述した図8のEP)である場合を例として、主に図3(a)、図3(b)との相違的に着目して説明を行う。図11(a)に示すように、SOC2が送信動作を行う際には、まず、プロセッサ回路CPUが、メモリ回路MEM上に送信データやその宛先データ等を作成し、これらのデータを内部バスIBSやCPUインタフェース回路CPUIFを介してバッファ回路BUF1,BUF2に転送する(S201)。この際には、2面のバッファ回路を備えているため、図3(a)の場合と異なり、2回分のパケット転送に伴うデータを格納可能となっている。
次いで、データリンクレイヤ処理回路DLは、図3(a)の場合と同様に、外部の相手先から「UpdateFC」を表すデータリンクレイヤパケット(DLLP)を受けた際、当該DLLPから相手先における受信バッファの空き容量を検出し、この空き容量をトランザクションレイヤ処理回路TLに通知する(S202)。ここでは、相手先においてバッファ回路に2面分の空き容量があるものとする。この場合、TLは、まず、図3(a)の場合と同様に、前述したBUF1上の送信データおよび宛先データ等を用いてトランザクションレイヤパケット(TLP)を生成し、これをDL、MAC、PHYを介してトランザクションパケット(TLP’)に変換した上で伝送線路LNに向けて送信動作(MWr1)を行う(S203a,S203,S204,S204b,S205)。その後連続して、TLは、前述したBUF2上の送信データおよび宛先データ等をTLPを生成し、これをDL、MAC、PHYを介してTLP’に変換した上でLNに向けて送信動作(MWr2)を行う(S203b,S203,S204,S204b,S205)。前述したように、これらの送信動作の際に、DLは、内部の再送バッファ回路に一時的にデータを保持するが、この再送バッファ回路の容量値は、2回分の送信動作を行うのに必要な大きさに設定される。
一方、図11(b)に示すように、情報処理装置SOC2が受信動作を行う際には、図3(b)の場合と同様に、DLが、図11(a)の送信動作(MWr1)に伴うTLP’をPHYおよびMACを介して受け、エラー検出等を行う(S206)。ここで問題が無ければ、DLは、データリンクレイヤパケット(DLLP)を用いて肯定応答(Ack1)を返信し、問題が有ればDLLPを用いて否定応答(Nak1)を返信する(S207)。更に、本実施の形態のSOC2では、TLおよびDLが、バッファ回路BUF1,BUF2の使用状態を認識し、例えばBUF1,BUF2の両方が使用されている間に次のパケットが送信されてきた場合にも、否定応答(Nak1)を返信する。ここでは、DLが「Ack1」を返信したものとして、DLは、MWr1に伴うTLPをTLに伝送し、TLは、当該TLPをBUF1に蓄えると共に、場合によってはエラー検出等の処理を行う(S209,S210a)。TLは、このBUF1へのTLPの格納が完了した際にはCPUに対して通知を行う。これを受けて、CPUは、BUF1上の格納データをCPUIFや内部バスIBSを介してメモリ回路MEMに転送する(S212)。CPUは、このMEM上のデータを用いて所定の処理を行う。
また、これに続いて、あるいはこれと並行して、DLは、図11(a)の送信動作(MWr2)に伴うトランザクションパケット(TLP’)をPHYおよびMACを介して受け、MWr1の場合と同様にエラー状況及びバッファ回路の空き容量に応じて肯定応答(Ack2)又は否定応答(Nak2)を返信する(S206,S207)。ここでは、DLが「Ack2」を返信したものとして、DLは、MWr2に伴うTLPをTLに伝送し、TLは、当該TLPをBUF2に蓄えると共に場合によってはエラー検出等の処理を行う(S209,S210b)。TLは、このBUF2へのTLPの格納が完了した際にはCPUに対して通知を行い、これを受けて、CPUは、BUF2上の格納データをCPUIFやIBSを介してMEMに転送する。ここでは、BUF2からMEMへの転送処理は、前述したBUF1からMEMへの転送処理が終えた後に行われる。
ここで、本実施の形態2の情報処理装置SOC2では、実施の形態1の場合と同様に、図11(b)に示す受信側のTLが、前述したS209でのMWr1に伴うTLPの伝送を受けてから、実際にBUF1に空き容量が生じるまでのいずれかのタイミングで、「UpdateFC1」を送出する(S211)ことが特徴となっている。また、図11(b)に示す受信側のTLが、前述したS209でのMWr2に伴うTLPの伝送を受けてから、実際にBUF2に空き容量が生じるまでのいずれかのタイミングで、「UpdateFC2」を送出する(S211)ことが特徴となっている。図11(a)の送信側におけるTLは、「UpdateFC1」を受けて、前述したS203a以降の処理によって次のパケットの送信を開始し、「UpdateFC2」を受けて、前述したS203b以降の処理によって次のパケットの送信を開始する。
なお、受信側のDLおよびTL周りは、例えば、前述した図6(a)とほぼ同様の構成例を用いることで実現可能である。ただし、ここでは、2面のバッファ回路BUF1,BUF2を備えているため、例えば、前述したクレジット演算回路CCALがBUF1用のクレジット演算とBUF2用のクレジット演算を独立に行い、前述したバッファライト制御回路WTCTLもBUF1用のライト制御とBUF2用のライト制御を独立に行う。また、前述した受信可否判定回路RXJGは、CCALにおけるBUF1用のクレジット演算結果に応じて投機クレジット値決定回路CRSET、Ack/Nak送信判定回路ANJG、ならびにWTCTL内のBUF1用のライト制御部に制御信号を出力する。更に、同様にして、RXJGは、CCALにおけるBUF2用のクレジット演算結果に応じてCRSET、ANJG、ならびにWTCTL内のBUF2用のライト制御部に制御信号を出力する。
《情報処理装置の全体動作タイミング》
図12は、図11の動作例に伴うタイミングシーケンスの一例を示す模式図である。図13は、図12の比較例となるタイミングシーケンスの一例を示す模式図である。図12および図13の例では、前述した図4(a)、図4(b)の場合と同様に、送信側のプロセッサCPUが送信パケットの生成を開始してから受信側のバッファ回路BUF1(又はBUF2)に当該パケットデータが格納されるまでの送信動作(MWr)に要する期間を3程度としている。また、受信側のデータリンクレイヤ処理回路DL(およびメディアアクセスレイヤ処理回路MAC)が「Ack」を返信したのち、これを送信側が受け取るまでに要する期間と、受信側のトランザクションレイヤ処理回路TLが「UpdateFC」を返信したのち、これを送信側が受け取るまでに要する期間を、それぞれ2程度としている。更に、受信側のCPUが、受信側のBUF1(又はBUF2)に格納されたパケットデータをメモリ回路MEM上に全て取り出すまでに要する期間を4程度としている。
この場合、本実施の形態2の情報処理装置SOC2を用いると、図12に示すように、4回のパケット転送に要する実効的な期間を16程度(1回当たりに4程度)とすることが可能となる。図12では、送信側がt=0の時刻から1番目の送信動作(MWr1)を開始し、受信側のBUF1がこのMWr1に伴うパケットデータの格納動作を約t=3の時刻で完了する。このMWr1に際し、受信側のDL(およびMAC)は約t=2の時刻で「Ack1」を返信する。また、送信側は、MWr1に続いて、t=1の時刻から2番目の送信動作(MWr2)を開始し、受信側のBUF2がこのMWr2に伴うパケットデータの格納動作を約t=4の時刻で完了する。このMWr2に際し、受信側のDL(およびMAC)は約t=3の時刻で「Ack2」を返信する。
ここで、図12の例では、前述した図4(a)の場合と異なり、「UpdateFC」の早出しタイミングを遅らせた場合を示している。このタイミング調整は、例えば、前述した図6(a)の遅延回路DLYで行うことができる。ここでは、受信側のTLは、約t=5の時刻でBUF1が開放されたことを示す「UpdateFC1」を返信し、約t=6の時刻でBUF2が開放されたことを示す「UpdateFC2」を返信する。ただし、この各時刻において実際にはBUF1,BUF2共に開放されておらず、BUF1は約t=3の時刻から使用されると共に約t=7の時刻で開放され、BUF2は約t=4の時刻から使用されると共に約t=11の時刻で開放される。BUF2がBUF1に比べて使用期間が長いのは、ここでは、CPUがBUF1の格納データを4期間でMEM上に取り出した後にBUF2の格納データを4期間でMEM上に取り出すこととしているためである。
受信側からの「UpdateFC1」は、約t=8の時刻に送信側に到達し、これに応じて送信側は、t=8の時刻から3番目の送信動作(MWr3)を開始する。このMWr3に伴うパケットデータは、約t=10の時刻で受信側のDL(およびMAC)に到達し、この時刻ではBUF1が開放されているため、受信側のDL(およびMAC)は、約t=10の時刻で「Ack3」を返信する。受信側からの「UpdateFC2」は、約t=9の時刻に送信側に到達し、これに応じて送信側は、t=9の時刻から4番目の送信動作(MWr4)を開始する。このMWr4に伴うパケットデータは、約t=11の時刻で受信側のDL(およびMAC)に到達し、この時刻ではBUF2が開放されているため、受信側のDL(およびMAC)は、約t=11の時刻で「Ack4」を返信する。また、MWr3に応じた「UpdateFC3」は、約t=13の時刻で受信側のTLによって返信され、約t=16の時刻で送信側に到達し、これを受けて送信側は次の送信動作を開始することになる。
一方、本発明の比較例として検討した情報処理装置では、図13に示すように、4回のパケット転送に要する実効的な期間が20程度(1回当たりに5程度)となる。当該装置では、図12の場合と異なり、受信側のTLが、例えば、約t=7の時刻で実際に受信側のBUF1が開放されるのを確認した上で「UpdateFC1」を返信し、約t=11の時刻で実際に受信側のBUF2が開放されるのを確認した上で「UpdateFC2」を返信している。この場合、実施の形態1の場合と同様の理由で、受信側のBUF1,BUF2が両方とも待ち状態となっている期間が生じることになる。その結果、この図12および図13の例では、本実施の形態2の情報処理装置SOC2を用いることで、比較例の情報処理装置に比べて1.25倍程度の高速化を図ることが可能となる。
ただし、図12および図13と前述した図4(a)、図4(b)との比較から判るように、バッファ回路の面数を増加させるほど、「UpdateFC」の早出しによる通信速度の向上効果は小さくなり得る。これは、バッファ回路の面数を増加させるほど、全てのバッファ回路が待ち状態となる期間が減少するためである。本発明者等の検討によれば、勿論条件にもよるが、特にバッファ回路が2面以内の場合において「UpdateFC」の早出し効果が顕著であるという結果が得られた。また、実施の形態1でも述べたように、通信速度の高速化を実現する手法として、バッファ回路の面数を増加させる手法があるが、見方を変えると、「UpdateFC」の早出しを行うことでバッファ回路の面数を増加させずに高速化が図れ、回路面積の低減や製造コストの低減等が図れる。例えば、図13および図4(a)の例では、1面のバッファ回路を備えると共に「UpdateFC」の早出しを行う場合と、2面のバッファ回路を備えると共に「UpdateFC」の早出しを行わない構成例とで同等の通信速度が得られている。
図14は、図11の動作例に伴う他のタイミングシーケンスの一例を示す模式図である。図14の動作例では、前述した図12の動作例と異なり、受信側のCPUがBUF1(又はBUF2)上のパケットデータをMEM上に取り出すのに要する期間が5程度に延びている。また、前述した図12の動作例と異なり、受信側のTLが「UpdateFC」を最も早いタイミングで送出している。この場合、図14に示すように、頻繁に再送信動作が生じることになる。
例えば、定常的な動作となるt=13以降の時刻に着目すると、送信側がt=13の時刻から送信動作(MWr5)を行い、これに伴うパケットデータが約t=15の時刻で受信側のDLに到達する。ただし、この時点ではBUF1,BUF2共に使用中であるため、受信側のDLは「Nak5」を出力する。これを受けて、送信側のDLは再送信動作(MWr5(再送))を行い、これに伴うパケットデータが約t=18の時刻で受信側のDLに到達する。この時点では、BUF1が開放状態となっているため、受信側のDLは「Ack5」を出力し、続けて受信側のTLが「UpdateFC5」を出力する。一方、送信側はt=17の時刻から次のパケット転送に伴う送信動作(MWr6)を行い、これに伴うパケットデータが約t=19の時刻で受信側のDLに到達する。ただし、この時点ではBUF1,BUF2共に使用中であるため、受信側のDLは「Nak6」を出力する。これを受けて、送信側のDLは再送信動作(MWr6(再送))を行い、これに伴うパケットデータが約t=22の時刻で受信側のDLに到達する。この時点では、BUF2が開放状態となっているため、受信側のDLは「Ack6」を出力し、続けて受信側のTLが「UpdateFC6」を出力する。
以降同様にして、「UpdateFC5」に応じた送信動作(MWr7)に伴うパケットデータは、再送信動作(MWr7(再送))を1回経たのちBUF1に格納され、「UpdateFC6」に応じた送信動作(MWr8)に伴うパケットデータも、再送信動作(MWr8(再送))を1回経たのちBUF2に格納される。そして、このような処理が繰り返される結果、図14に示すように、4回のパケット転送(例えば送信動作(MWr5の開始から送信動作(MWr9)の開始まで)に伴う実効的な期間は16程度となる。すなわち、前述した図12の場合と比較すると、若干条件は異なるが、理想的には仮に再送信動作が生じるような場合でも、殆ど通信速度の低下は生じない。ただし、実際には、再送信動作に伴い送信側ならびに受信側共に余分な処理量が増大し、また、伝送線路LN上のトラフィック量も過密となるため、これに伴い通信速度の低下が生じる恐れがある。したがって、再送信動作を回避できるように「UpdateFC5」の送出タイミングを定めることが望ましい。
以上、本実施の形態2の情報処理装置を用いることで、実施の形態1の場合と比較して、代表的には、バッファ回路等に伴い回路面積が増大するものの、更なる通信速度の高速化が実現可能となる。
(実施の形態3)
本実施の形態3では、前述した実施の形態1、2の情報処理装置において、再送信動作を回避するための方式について説明する。まず、再送信動作が生じる条件について簡単に説明すると次のようになる。図15は、本発明の実施の形態3の情報処理装置において、再送信動作が生じる条件を簡略化して表すものであり、図15(a)はバッファ回路が1面の場合の説明図、図15(b)はバッファ回路が2面の場合の説明図である。図15(a)において、時間Tpは、送信側(例えばプロセッサ回路)が送信動作を開始し、それに伴うパケットデータが受信側(例えばバッファ回路)に到達するまでに要する時間である。時間Tuは、受信側(具体的にはトランザクションレイヤ処理回路TL)が「UpdateFC」を返信し、それが送信側に到達するまでに要する時間である。時間Trは、受信側のプロセッサ回路等がバッファ回路に格納されたパケットデータを完全に取り出すのに要する時間である。
この場合、再送信動作が生じる条件は、(Tp+Tr)>(2×Tu+Tp)の場合であり、これを整理してTr>(2×Tu)の場合である。(Tp+Tr)は、「送信側が送信動作を開始し、そのパケットデータが受信側のプロセッサ回路等で取り出されるのに要する時間」を意味する。(2×Tu+Tp)は、「送信側が送信動作を開始し、これに応じて受信側が「UpdateFC」を返信し、これに応じて送信側が次の送信動作を行うと共にそのパケットデータが受信側に到達するのに要する時間」を意味する。したがって、仮にTr>(2×Tu)の場合であっても、例えば、前述した図6(a)の遅延回路DLYを用いてTd=Tr−(2×Tu)の遅延時間を挿入することで原理的には再送信動作を回避することが可能となる。
一方、図15(b)において、時間Tp,Tu,Trは、図15(a)の場合と同様であり、時間Tsは、2面のバッファ回路(BUF1,BUF2とする)に伴い連続して送信動作を行う際の、その送信間隔である。このTsは、例えば、送信動作に伴うパケットデータのサイズに比例して長くなる。図15(b)において、まず、BUF1において再送信動作が生じる条件は、図15(a)の場合と同様であり、Tr>(2×Tu)となる。一方、BUF2において再送信動作が生じる条件は、(Tp+2×Tr)>(2×Tu+Tp+Ts)の場合であり、これを整理してTr>(Tu+0.5×Ts)の場合である。(Tp+2×Tr)は、「送信側が連続した送信動作を開始したのち、受信側のプロセッサ回路等がBUF1のパケットデータの取り出しを経てからBUF2のパケットデータの取り出しを行うのに要する時間」を意味する。(2×Tu+Tp+Ts)は、「送信側が連続した送信動作を開始し、これに応じて受信側が「UpdateFC」を連続して返信し、これに応じて送信側が次の連続した送信動作を行うと共にその後側の送信動作に伴うパケットデータが受信側に到達するのに要する時間」を意味する。
したがって、2面のバッファ回路を持つ場合に再送信動作を回避する条件は、Tr≦(2×Tu)かつTr≦(Tu+0.5×Ts)の場合であり、図15(a)の場合と同様に、図15(b)の斜線部分の領域AR1を満たすように遅延時間を挿入することで原理的には再送信動作を回避することが可能となる。しかしながら、図15(a)、図15(b)において、現実的には、前述した遅延時間の条件を精度よく定めることは困難と言える。その要因として、特に、PCIeシステムがプラグアンドプレイ機能を備えていることが挙げられる。すなわち、前述した図8において、例えばPCIeエンドポイントEPは、自由に抜き差しが可能となっており、この抜き差しされるPCIeエンドポイントの種類(仕様)も様々である。この場合、PCIeエンドポイントの種類(仕様)が変わる毎に、前述した各時間Tp,Tr,Ts,Tuも変わり得るため、最適な遅延時間も変わることになる。
《情報処理装置の主要部の詳細構成および動作》
そこで、本実施の形態3の情報処理装置では、この遅延時間の調整を動的に行う。図16は、本発明の実施の形態3による情報処理装置において、その主要部の詳細な構成例を示すブロック図である。図16に示す構成例は、前述した図6(a)の変形例となっており、図6(a)の投機実行制御回路SECTLにおける遅延回路DLYが、図16の投機実行制御回路SECTL2における投機時間調整回路TFCCTLに置き換わったものとなっている。これ以外の構成に関しては図6(a)と同様であるため、詳細な説明は省略する。
投機時間調整回路TFCCTLは、投機クレジット値決定回路CRSETの出力を遅延させ、UpdateFC生成回路FCGENに出力する可変遅延回路VDLYと、VDLYの遅延時間を設定するレジスタ回路REGと、REGの値(すなわち最適な遅延時間)を探索する処理回路(図示せず)を備えている。この処理回路は、特に限定はされないが、専用のロジック演算回路を設けることで実現したり、あるいは、前述した図3(b)等のプロセッサ回路CPU等で実現することも可能である。
図17(a)、(b)は、図6における投機時間調整回路のそれぞれ異なる動作例を示すフロー図である。図17(a)において、投機時間調整回路(その内部の処理回路)TFCCTLは、まず、可変遅延回路VDLYの遅延時間を最小値(例えばゼロ)に設定する(S301)。次いで、TFCCTLは、トランザクションレイヤパケット(TLP)の受信(S302)に応じて「Nak」を返信した際(S303)にはVDLYの遅延時間を予め定めた所定の値Δtだけ増加させる(S304)。これによって、「UpdateFC」の送出タイミングは、最も早いタイミングを起点としてΔt単位で増加していくことになる。「Nak」が発生しない場合は、現在のVDLYの遅延時間で、投機の失敗がなく、投機実行が成功している状況となる。
なお、図17(a)の動作例は、通常の通信期間に行うことが可能である。一般的なPCIeシステムでは、通常の通信期間で「Nak」が発生するような場合は殆どないため、これを利用して、本実施の形態3の情報処理装置は、「Nak」の発生要因を「UpdateFC」の送出タイミングとみなして最適な早出しタイミングを探索している。
一方、図17(b)において、投機時間調整回路(その内部の処理回路)TFCCTLは、まず、可変遅延回路VDLYの遅延時間を最大値に設定する(S401)。最大値とは、例えば、前述した図4(a)、(b)において、バッファ回路BUFの使用期間(4程度)とほぼ同等の値を持つ予め設計段階で定めた値である。次いで、TFCCTLは、トランザクションレイヤパケット(TLP)の受信(S402)に応じて「Nak」を返信した際(S403)にはVDLYの遅延時間を予め定めた所定の値Δtだけ増加させる(S404)。ここで、このS404の際には、当該遅延時間の設定時に遅延時間を増加させる必要性が生じた旨を履歴として保持しておく。一方、TFCCTLは、S403において「Nak」を返信しなかった場合には、前述したS404におけるVDLYの遅延時間の増加履歴を参照し(S405)、増加履歴が無い場合にはVDLYの遅延時間を予め定めた所定の値Δtだけ減少させる(S406)。また、S405において、増加履歴があった場合には、S402へ移行してTLPの受信を待つ。
これによって、「UpdateFC」の送出タイミングは、最も遅いタイミング(例えば実際にバッファ回路が開放されたタイミングとほぼ同等)を起点として、「Nak」が生じる直前までΔt単位で減少していくことになる。すなわち、S402でTLPを受信したのち「Nak」の返送を行った場合(S403)は、これ以上VDLYの値を小さくしても、投機実行が失敗するため、VDLYの遅延時間をΔtだけ増加させる(S404)。TFCCTLは、この遅延時間の増加させた事実を記録しておく。S403で、「Nak」返送を行わなかった場合、VDLYをΔtだけ小さくすることで、より投機の時間を早くする事ができるため、S406にてVDLYの値を小さくする。ただし、既に一度Δtだけ増加させた履歴が残っている場合は、前回、S406で減じた遅延時間で「Nak」返信が生じた事を意味することになる。この場合、再度減算すると、再び「Nak」返信が生じることになるため、減算を行わない。この判定を行うのがS405である。なお、図17(b)において、VDLYの増加履歴は、プラグアンドプレイ機能等を介してPCIeシステムの構成が変更されたことが検出されるとクリアされる。
図17(a)と図17(b)の動作例を比較すると、図17(a)を用いた場合、場合によっては探索が完了するまでの段階で「Nak」(すなわち再送信動作)が多発する恐れがあるが、図17(b)を用いた場合には、このような事態が生じない。一方、仮に「UpdateFC」の送出タイミングを最も早いタイミングとした際にも再送信動作が生じないような場合を想定すると、図17(a)を用いることで早い段階で高速な通信速度を実現することができるが、図17(b)を用いると、高速な通信速度を実現するまでに若干の時間を要することになる。
以上、本実施の形態3の情報処理装置を用いることで、代表的には、実施の形態1および2で述べた各種効果に加えて更に、様々なPCIeシステムに応じて「UpdateFC」の送出タイミングの最適化を図ることが可能となり、その結果、通信速度の更なる高速化が実現可能となる。
ここで、これまでに述べた各実施の形態による代表的な効果を纏めて表すと次のようになる。図18および図19は、本実施の形態による代表的な効果の一例を示す説明図である。図18に示すように、バッファ回路を1面設けた場合には、本実施の形態により「UpdateFC」の早出しを行うことで、「UpdateFC」の早出しを行わない場合(比較例)に比べて通信速度を36%程度高速化することが可能となる。また、図19に示すように、バッファ回路を2面設けた場合には、本実施の形態により「UpdateFC」の早出しを行うことで、「UpdateFC」の早出しを行わない場合(比較例)に比べて通信速度を31%程度高速化することが可能となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
例えば、前述した各実施の形態では、「UpdateFC」の早出し機能を備えた情報処理装置ならびに情報処理システムを示したが、場合によって、「UpdateFC」の早出し機能を備えると共に、当該機能の有効・無効を切り替えられるような形態とすることも可能である。すなわち、例えば、切り替え信号に応じて前述した図6(a)の構成例が図6(b)の構成例に変更されるような形態である。例えば、送信パケットのデータペイロードのサイズが非常に大きいような場合には、「UpdateFC」の早出しに伴い生じ得る再送信動作のデメリットの方が大きいことも考えられるため、場合によってはこのような形態を用いることも有益となる。ただし、当該形態は、前述した図17(a)、(b)(特に図17(b))の動作例を用いることでも、ある程度等価的に実現することができる。また、前述した各実施の形態では、PCIeシステムを例として説明を行ったが、必ずしもこれに限定されるものではなく、同様のフロー制御機能を備えた情報処理システム(通信システム)であれば適用可能である。
また、例えば、前述した図3等では、プロセッサ回路CPUが、バッファ回路BUF上に格納されたパケットデータをメモリ回路MEM上に取り出す(読み出す)構成としたが、勿論、必ずしもCPUを介する必要はなく、当該処理を、例えば、ダイレクトメモリアクセス(DMA)コントローラ等に行われることも可能である。
SOC 情報処理装置
CPU プロセッサ回路
MEM メモリ回路
IBS 内部バス
PCIeIF PCIeインタフェース回路
CPUIF CPUインタフェース回路
BUF バッファ回路
TL トランザクションレイヤ処理回路
DL データリンクレイヤ処理回路
MAC メディアアクセスレイヤ処理回路
PHY 物理レイヤ処理回路
PT ポート
LN 伝送線路
TLP トランザクションレイヤパケット
TLP’ トランザクションパケット
ST スタートシンボル
EN エンドシンボル
SEQ シーケンス番号
HD ヘッダ
DAT データペイロード
ECRC,LCRC,CRC エラー検出符号
DATL データペイロード長
RUT ルーティング情報
TYP タイプ
DLDAT データリンクデータ
DLLP データリンクレイヤパケット
DLLP’ データリンクパケット
SECTL 投機実行制御回路
WTCTL バッファライト制御回路
CCAL クレジット演算回路
FCGEN UpdateFC生成回路
CRCJG CRC判定回路
ANGEN Ack/Nak生成回路
RXJG 受信可否判定回路
CRSET 投機クレジット値決定回路
DLY 遅延回路
LT_CRCJG CRC判定結果保持回路
ANJG Ack/Nak送信判定回路
RT PCIeルートポート
SW PCIeスイッチ
EP PCIeエンドポイント
TFCCTL 投機時間調整回路
VDLY 可変遅延回路
REG レジスタ回路

Claims (19)

  1. 伝送線路を介して入力された第1サイズの受信データを格納するバッファ回路と、
    前記バッファ回路に前記第1サイズの前記受信データが格納された場合に当該受信データを前記バッファ回路から読み出すことで前記バッファ回路に前記第1サイズの空き容量を生成する処理回路と、
    前記バッファ回路に前記第1サイズの空き容量が実際に存在しているか否かを逐次判別する第1回路と、
    前記バッファ回路に前記第1サイズの空き容量が存在することを表す第1情報を前記伝送線路に出力する第2回路とを備え、
    前記第2回路は、前記第1回路が前記バッファ回路に前記第1サイズの空き容量が実際に存在していないと判別している段階で、前記第1情報を出力することを特徴とする情報処理装置。
  2. 請求項1記載の情報処理装置において、
    前記受信データは、始まりを表すスタートシンボルと終わりを表すエンドシンボルを備えたデータブロックの内部に含まれており、
    前記第2回路は、前記情報処理装置が前記データブロックの前記エンドシンボルを検出した時刻となる第1時刻から、前記処理回路が当該受信データに伴う前記空き容量を生成する直前の時刻となる第2時刻までのいずれかの時刻で前記第1情報を出力することを特徴とする情報処理装置。
  3. 請求項2記載の情報処理装置において、
    前記第2回路は、前記第1時刻で前記第1情報を出力することを特徴とする情報処理装置。
  4. 請求項2記載の情報処理装置において、更に、
    前記第1回路が前記バッファ回路に前記第1サイズの空き容量が存在していないと判別している段階で前記伝送線路を介して前記受信データが入力されてきた場合に、当該受信データの再送信依頼を表す第2情報を前記伝送線路に出力する第3回路を備えることを特徴とする情報処理装置。
  5. 請求項4記載の情報処理装置において、
    前記データブロックには、更に前記第1サイズを示す第3情報が含まれており、
    前記第1回路は、
    前記データブロックから前記第3情報を検出した際に、現在の値に前記第3情報の値を減算または加算し、前記バッファ回路の前記処理回路による読み出しが完了したサイズを示す第4情報が入力された際に、現在の値に前記第4情報の値を加算または減算するクレジット演算回路と、
    前記クレジット演算回路の演算結果を監視し、前記クレジット演算回路による前記第3情報の値を用いた演算結果に基づいて当該データブロックにおける前記受信データの前記バッファ回路への格納可否を判別する受信可否判別回路とを備え、
    前記クレジット演算回路は、前記受信可否判別回路が前記バッファ回路への格納が不可能と判別した場合には前記第3情報の値を用いた演算結果を元に戻すことで前記バッファ回路における前記空き容量のサイズを管理し、
    前記受信可否判別回路は、前記バッファ回路への格納が可能と判別した場合には、前記第2回路に前記第1情報の出力を行わせ、前記バッファ回路への格納が不可能と判別した場合には、前記第3回路に前記第2情報の出力を行わせると共に、前記受信データの前記バッファ回路への格納動作を停止させる信号を出力することを特徴とする情報処理装置。
  6. 請求項2記載の情報処理装置において、更に、
    前記第2回路による前記第1情報の出力タイミングを可変制御するタイミング調整回路を有することを特徴とする情報処理装置。
  7. 請求項6記載の情報処理装置において、
    前記タイミング調整回路は、前記第1情報の出力タイミングを、前記第1時刻を起点として前記第3回路による前記第2情報の出力が発生しなくなるまで段階的に遅らせる制御を行うことを特徴とする情報処理装置。
  8. 請求項6記載の情報処理装置において、
    前記タイミング調整回路は、前記第1情報の出力タイミングを、前記第2時刻を起点として前記第3回路による前記第2情報の出力が発生するまで段階的に早める制御を行うことを特徴とする情報処理装置。
  9. 請求項2記載の情報処理装置において、
    前記情報処理装置は、PCI Express規格に基づく装置であることを特徴とする情報処理装置。
  10. 請求項2記載の情報処理装置において、
    前記バッファ回路は、前記第1サイズの前記受信データを格納するのに必要な容量を持つ1個の記憶回路によって構成されることを特徴とする情報処理装置。
  11. 請求項2記載の情報処理装置において、
    前記バッファ回路は、それぞれが前記第1サイズの前記受信データを格納するのに必要な容量を持ち、それぞれを独立に読み書きすることが可能な第1および第2記憶回路によって構成され、
    前記第2回路は、前記第1記憶回路を対象とした前記第1情報の出力と、前記第2記憶回路を対象とした前記第1情報の出力を行うことを特徴とする情報処理装置。
  12. 第1および第2情報処理装置と、
    前記第1情報処理装置と前記第2情報処理装置とを接続する伝送線路とを備え、
    前記第1情報処理装置は、
    前記第2情報処理装置から前記伝送線路を介して入力された第1サイズの第1受信データを格納する第1バッファ回路と、
    前記第1バッファ回路に前記第1サイズの前記第1受信データが格納された場合に当該第1受信データを前記第1バッファ回路から読み出すことで前記第1バッファ回路に前記第1サイズの空き容量を生成する第1処理回路と、
    前記第1バッファ回路に前記第1サイズの空き容量が実際に存在しているか否かを逐次判別する第1A回路と、
    前記第1バッファ回路に前記第1サイズの空き容量が存在することを表す第1A情報を前記伝送線路を介して前記第2情報処理装置に出力する第2A回路とを有し、
    前記第2情報処理装置は、
    前記第1情報処理装置から前記伝送線路を介して入力された前記第1サイズの第2受信データを格納する第2バッファ回路と、
    前記第2バッファ回路に前記第1サイズの前記第2受信データが格納された場合に当該第2受信データを前記第2バッファ回路から読み出すことで前記第2バッファ回路に前記第1サイズの空き容量を生成する第2処理回路と、
    前記第2バッファ回路に前記第1サイズの空き容量が実際に存在しているか否かを逐次判別する第1B回路と、
    前記第2バッファ回路に前記第1サイズの空き容量が存在することを表す第1B情報を前記伝送線路を介して前記第1情報処理装置に出力する第2B回路とを有し、
    前記第2A回路は、前記第1A回路が前記第1バッファ回路に前記第1サイズの空き容量が実際に存在していないと判別している段階で、前記第1A情報を出力し、
    前記第2B回路は、前記第1B回路が前記第2バッファ回路に前記第1サイズの空き容量が実際に存在していないと判別している段階で、前記第1B情報を出力することを特徴とする情報処理システム。
  13. 請求項12記載の情報処理システムにおいて、
    前記第1受信データは、始まりを表すスタートシンボルと終わりを表すエンドシンボルを備えた第1データブロックの内部に含まれており、
    前記第2A回路は、前記第1情報処理装置が前記第1データブロックの前記エンドシンボルを検出した時刻となる第1A時刻から、前記第1処理回路が当該第1受信データに伴う前記空き容量を生成する直前の時刻となる第2A時刻までのいずれかの時刻で前記第1A情報を出力し、
    前記第2受信データは、始まりを表すスタートシンボルと終わりを表すエンドシンボルを備えた第2データブロックの内部に含まれており、
    前記第2B回路は、前記第2情報処理装置が前記第2データブロックの前記エンドシンボルを検出した時刻となる第1B時刻から、前記第2処理回路が当該第2受信データに伴う前記空き容量を生成する直前の時刻となる第2B時刻までのいずれかの時刻で前記第1B情報を出力することを特徴とする情報処理システム。
  14. 請求項13記載の情報処理システムにおいて、
    前記第2A回路は、前記第1A時刻で前記第1A情報を出力し、
    前記第2B回路は、前記第1B時刻で前記第1B情報を出力することを特徴とする情報処理システム。
  15. 請求項13記載の情報処理システムにおいて、
    前記第1情報処理装置は、更に、前記第1A回路が前記第1バッファ回路に前記第1サイズの空き容量が存在していないと判別している段階で前記伝送線路を介して前記第1受信データが入力されてきた場合に、当該第1受信データの再送信依頼を表す第2A情報を前記伝送線路に出力する第3A回路を備え、
    前記第2情報処理装置は、更に、前記第1B回路が前記第2バッファ回路に前記第1サイズの空き容量が存在していないと判別している段階で前記伝送線路を介して前記第2受信データが入力されてきた場合に、当該第2受信データの再送信依頼を表す第2B情報を前記伝送線路に出力する第3B回路を備えることを特徴とする情報処理システム。
  16. 請求項13記載の情報処理システムにおいて、
    前記情報処理システムは、PCI Express規格に基づくシステムであることを特徴とする情報処理システム。
  17. バッファ回路および処理回路を備えた第1情報処理装置と、
    第2情報処理装置と、
    前記第1情報処理装置と前記第2情報処理装置とを接続する伝送線路とを有する情報処理システムの通信方法であって、
    前記情報処理システムは、
    前記第2情報処理装置が、前記第1情報処理装置に向けて前記伝送線路を介して第1送信データを送信する第1ステップと、
    前記第1情報処理装置が、前記第1送信データを認識し、前記第1送信データを前記バッファ回路に格納する第2ステップと、
    前記第1情報処理装置の前記処理回路が前記バッファ回路に格納された前記第1送信データの読み出しを行う第3ステップと、
    前記第1情報処理装置が、前記第3ステップにおいて前記第1送信データの読み出しが完了したことを表す第1情報を前記第2情報処理装置に向けて前記伝送線路を介して返信する第4ステップと、
    前記第2情報処理装置が、前記第1情報に応じて前記第1情報処理装置に向けて前記伝送線路を介して第2送信データを送信する第5ステップとを実行し、
    前記第4ステップでの前記第1情報の返信は、前記第2ステップにおいて前記第1送信データを認識した時刻となる第1時刻から、前記第3ステップにおいて前記第1送信データの読み出しが完了する直前の時刻となる第2時刻までの間のいずれかの時刻で行われることを特徴とする情報処理システムの通信方法。
  18. 請求項17記載の情報処理システムの通信方法において、
    前記情報処理システムは、さらに、
    前記第1情報処理装置が、前記第5ステップで送信された前記第2送信データを認識し、この認識が行われた際に前記第3ステップにおける前記第1送信データの読み出しが完了していない場合に、前記第2送信データの再送信依頼を表す第2情報を前記第2情報処理装置に向けて前記伝送線路を介して返信する第6ステップと、
    前記第2情報処理装置が、前記第2情報に応じて前記第1情報処理装置に向けて前記伝送線路を介して前記第2送信データの再送信を行う第7ステップとを実行することを特徴とする情報処理システムの通信方法。
  19. 請求項18記載の情報処理システムの通信方法において、
    前記情報処理システムは、PCI Express規格に基づくシステムであることを特徴とする情報処理システムの通信方法。
JP2010209008A 2010-09-17 2010-09-17 情報処理装置、情報処理システムおよび情報処理システムの通信方法 Pending JP2012064090A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010209008A JP2012064090A (ja) 2010-09-17 2010-09-17 情報処理装置、情報処理システムおよび情報処理システムの通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010209008A JP2012064090A (ja) 2010-09-17 2010-09-17 情報処理装置、情報処理システムおよび情報処理システムの通信方法

Publications (1)

Publication Number Publication Date
JP2012064090A true JP2012064090A (ja) 2012-03-29

Family

ID=46059714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010209008A Pending JP2012064090A (ja) 2010-09-17 2010-09-17 情報処理装置、情報処理システムおよび情報処理システムの通信方法

Country Status (1)

Country Link
JP (1) JP2012064090A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015531920A (ja) * 2012-08-29 2015-11-05 アップル インコーポレイテッド コンピュータシステム内の構成要素のネットワーク経由での書き込みトランザクション用帯域幅の制限
JP2017163316A (ja) * 2016-03-09 2017-09-14 東芝メモリ株式会社 情報処理装置
EP3234789A4 (en) * 2014-12-17 2019-01-09 Intel Corporation METHOD, APPARATUS, AND SYSTEM FOR INTEGRATING DEVICES IN A COMPLEX ROOT COMPLEX

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015531920A (ja) * 2012-08-29 2015-11-05 アップル インコーポレイテッド コンピュータシステム内の構成要素のネットワーク経由での書き込みトランザクション用帯域幅の制限
EP3234789A4 (en) * 2014-12-17 2019-01-09 Intel Corporation METHOD, APPARATUS, AND SYSTEM FOR INTEGRATING DEVICES IN A COMPLEX ROOT COMPLEX
JP2017163316A (ja) * 2016-03-09 2017-09-14 東芝メモリ株式会社 情報処理装置

Similar Documents

Publication Publication Date Title
US7418524B2 (en) Universal serial bus (USB) extension
TWI416334B (zh) 在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之方法、匯流排介面裝置及處理器
CN115941616A (zh) 多路径rdma传输
US7492710B2 (en) Packet flow control
US9875206B2 (en) Methods and devices for extending USB 3.0-compliant communication
US7596641B2 (en) System and method for transmitting data packets in a computer system having a memory hub architecture
US9430432B2 (en) Optimized multi-root input output virtualization aware switch
US8700866B2 (en) Data transfer apparatus, data transfer device, and data transfer method in a data transfer device
US20050132089A1 (en) Directly connected low latency network and interface
US6366968B1 (en) Physical write packets processing when posted write error queue is full, with posted write error queue storing physical write requests when posted write packet fails
WO2012110798A1 (en) Serial interface
US11567893B2 (en) Method and a mirrored serial interface (MSI) for transferring data
JP2012064090A (ja) 情報処理装置、情報処理システムおよび情報処理システムの通信方法
JP2003069603A (ja) パケット通信制御装置
CN108599908B (zh) 通信系统和半导体设备
WO2006019770A2 (en) System and method for transmitting data in storage controllers
US6580711B1 (en) Serial interface circuit and signal processing method of the same
JP2010211322A (ja) ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法
JP2009188508A (ja) データ送受信装置
WO2001006708A1 (fr) Dispositif de gestion de transfert de donnees et appareil electronique
TW202306365A (zh) 用於互連協定的訊框接收的資料處理的方法以及儲存裝置
CN114253886A (zh) 用于化解扩展环境中的usb流量的冲突的技术
JP2014222466A (ja) 情報処理装置、情報処理システムおよび情報処理システムの通信方法
US6996657B1 (en) Apparatus for providing packets in a peripheral interface circuit of an I/O node of a computer system
JP4582180B2 (ja) データ伝送装置