JP2005332250A - データ処理装置およびフロー制御方法 - Google Patents
データ処理装置およびフロー制御方法 Download PDFInfo
- Publication number
- JP2005332250A JP2005332250A JP2004150657A JP2004150657A JP2005332250A JP 2005332250 A JP2005332250 A JP 2005332250A JP 2004150657 A JP2004150657 A JP 2004150657A JP 2004150657 A JP2004150657 A JP 2004150657A JP 2005332250 A JP2005332250 A JP 2005332250A
- Authority
- JP
- Japan
- Prior art keywords
- flow control
- value
- data
- header
- packet
- 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
- 238000000034 method Methods 0.000 title claims description 14
- 230000005540 biological transmission Effects 0.000 claims abstract description 18
- 238000004891 communication Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/4226—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】ヘッダとデータとを区別したフロー制御を実現でき、かつフロー制御情報を最適なタイミングで送信デバイスに送信する。
【解決手段】受信フローコントロール更新部103は、受信バッファ101から出力されたTLPに含まれるヘッダおよびデータそれぞれのサイズに基づいて、処理済みのヘッダのサイズおよび処理済みのデータのサイズをそれぞれ計数する。処理済みのヘッダのサイズに対応するクレジット数が、ソフトウェアによって設定されるヘッダ用更新クレジット数に達した場合、あるいは処理済みのデータのサイズに対応するクレジット数が、ソフトウェアによって設定されるデータ用更新クレジット数に達した場合、受信フローコントロール更新部103は、更新フローコントロール情報を更新フローコントロールDLLP(UpdateFC DLLP)を用いて相手デバイスに送信する。
【選択図】 図3
【解決手段】受信フローコントロール更新部103は、受信バッファ101から出力されたTLPに含まれるヘッダおよびデータそれぞれのサイズに基づいて、処理済みのヘッダのサイズおよび処理済みのデータのサイズをそれぞれ計数する。処理済みのヘッダのサイズに対応するクレジット数が、ソフトウェアによって設定されるヘッダ用更新クレジット数に達した場合、あるいは処理済みのデータのサイズに対応するクレジット数が、ソフトウェアによって設定されるデータ用更新クレジット数に達した場合、受信フローコントロール更新部103は、更新フローコントロール情報を更新フローコントロールDLLP(UpdateFC DLLP)を用いて相手デバイスに送信する。
【選択図】 図3
Description
本発明は、コンピュータ、通信装置のようなデータ処理装置および同装置で用いられるフロー制御方法に関する。
近年、コンピュータ、通信装置、オーディオ・ビデオ機器のようなデータ処理装置においては、PCI EXPRESSと称される第3世代汎用I/O相互接続インタフェースが注目されている。PCI EXPRESSは、シリアルインターフェースを介してデバイス間を相互接続するための規格であり、PCI SIG(Peripheral Component Interconnect Special Interest Group)によって規定されている。PCI EXPRESSの規格においては、デバイス間の情報の伝送はパケットを用いて実行される。メモリライトリクエスト、メモリリードリクエスト、I/Oライトリクエスト、I/Oリードリクエスト、のような様々なトランザクションに対応するために、ヘッダおよび可変長のデータを含むパケットのみならず、ヘッダのみを含みデータを含まないパケットも利用される。例えば、メモリリードを要求するメモリリードリクエストパケット、およびI/Oリードを要求するI/Oリードリクエストパケットは、それぞれヘッダのみから構成される。
また、PCI EXPRESSの規格においては、クレジットベースのフロー制御が用いられる。クレジットベースのフロー制御においては、受信デバイス内の有効な受信バッファのサイズを示すクレジットがフロー制御情報として受信デバイスから送信デバイスに予め通知される。送信デバイスは、クレジットで指定されるサイズ分の情報を送信することができる。PCI EXPRESSの規格においては、クレジットを送信するための制御方法として、例えばタイマを用いることによって、定期的に受信デバイスから送信デバイスにクレジットを送信することが例示されている。
しかし、この方法では、送信デバイスが受信デバイスから与えられたクレジットの数に余裕があり情報の送信に不自由しない期間中においても、タイマの値があるタイムアウト時間に達するたびに、クレジットが受信デバイスから送信デバイスに送信されてしまう。このため、デバイス間の通信帯域が無駄なクレジットの伝送によって消費されることになる。タイムアウト時間の値が小さいほど、クレジットの伝送によって消費される帯域は大きくなる。逆にタイムアウト時間があまりに大きな値に設定されていると、送信デバイスがクレジット不足に陥り、情報を受信デバイスに送信できなくなるという事態が発生する。
また、受信バッファにある一定の空きが発生するたびに、その空きサイズを示すクレジットを送信デバイスに送信するというフロー制御技術も知られている(例えば、特許文献1参照)。送信デバイスは、受け取ったクレジットに対応する数のパケットを送信することができる。
特開平9−205442号公報(段落0007)
しかし、特許文献1のフロー制御は、固定長のパケットを使用するATMネットワークに対応するものであり、またそのフロー制御はヘッダとデータとを区別していない。
ヘッダと可変長のデータを含むパケットと、ヘッダのみから構成されるパケットとが使用されるシステムにおいては、大きなサイズのデータを伴うパケットによって受信バッファが専有されてしまうことを防止するために、ヘッダとデータとを区別したフロー制御を実現することが必要である。
本発明は上述の事情を考慮してなされたものであり、ヘッダとデータとを区別したフロー制御を実現でき、かつフロー制御情報を最適なタイミングで送信デバイスに送信することが可能なデータ処理装置およびフロー制御方法を提供することを目的とする。
上述の課題を解決するため、本発明のデータ処理装置は、第1のデバイスと、前記第1のデバイスとの通信を実行する第2のデバイスと、前記第2のデバイスに設けられ、前記第1のデバイスから送信されるパケットを保持する受信バッファであって、前記パケットは、ヘッダおよび可変長のデータを含むパケットおよびヘッダを含みデータを含まないパケットのいずれかである受信バッファと、前記第2のデバイスに設けられ、前記受信バッファから出力されたパケットに含まれるヘッダおよびデータそれぞれのサイズに基づいて、処理済みのヘッダのサイズを示す第1の値および処理済みのデータのサイズを示す第2の値をそれぞれ計数する計数手段と、前記第2のデバイスに設けられ、前記第1の値および前記第2の値の少なくとも一方が、前記第1の値および前記第2の値それぞれに対応する基準値に達した場合、前記第2のデバイスが受信可能なヘッダおよびデータそれぞれのサイズを示すフローコントロール情報を前記第1のデバイスに送信するフローコントロール情報送信手段とを具備することを特徴とする。
本発明によれば、ヘッダとデータとを区別したフロー制御を実現でき、かつフロー制御情報を最適なタイミングで送信デバイスに送信することが可能となる。
以下、図面を参照して本発明の実施形態を説明する。
図1には、本発明の一実施形態に係るデータ処理装置のシステム構成が示されている。このデータ処理装置1は、例えば、コンピュータ、通信装置、またはオーディオ・ビデオ機器として機能する。以下では、データ処理装置1がコンピュータとして実現されている場合を想定する。
図1には、本発明の一実施形態に係るデータ処理装置のシステム構成が示されている。このデータ処理装置1は、例えば、コンピュータ、通信装置、またはオーディオ・ビデオ機器として機能する。以下では、データ処理装置1がコンピュータとして実現されている場合を想定する。
このデータ処理装置1は、図示のように、CPU(Central Processing Unit)11、ホストブリッジ12、主メモリ13、グラフィクスコントローラ14、I/Oコントローラ15、ハードディスクドライブ(HDD)16、およびI/Oデバイス17,18を備えている。CPU11はデータ処理装置1の動作を制御するプロセッサであり、HDD16から主メモリ13にロードされる各種プログラム(オペレーティングシステム、アプリケーションプログラム)を実行する。ホストブリッジ12はCPU11とI/Oコントローラ15とを繋ぐブリッジデバイスであり、ここにはグラフィクスコントローラ14との通信を実行する機能、および主メモリ13を制御するメモリコントローラも内蔵されている。I/Oコントローラ15は、CPU11の制御の下、I/Oデバイス17,18を制御する。またI/Oコントローラ15は、HDD16を制御するためのIDEコントローラも内蔵している。
ホストブリッジ12、グラフィクスコントローラ14、I/Oコントローラ15、I/Oデバイス17、I/Oデバイス18の各々は、PCI EXPRESS規格に準拠したデバイス(コンポーネント)である。ホストブリッジ12とグラフィクスコントローラ14との間の通信は、ホストブリッジ12とグラフィクスコントローラ14との間に配設されたPCI EXPRESSリンク30を介して実行される。同様に、ホストブリッジ12とI/Oコントローラ15との間の通信も、ホストブリッジ12とI/Oコントローラ15との間に配設されたPCI EXPRESSリンク30を介して実行される。さらに、I/Oコントローラ15とI/Oデバイス17,18の各々との間の通信も、I/Oコントローラ15とI/Oデバイス17,18の各々との間に配設されたPCI EXPRESSリンク30を介して実行される。
図2には、PCI EXPRESS規格にそれぞれ準拠した2つのデバイス21,22間の接続構成が示されている。デバイス(#A)21およびデバイス(#B)22の組み合わせは、例えば、ホストブリッジ12およびグラフィクスコントローラ14の組み合わせ、ホストブリッジ12とI/Oコントローラ15との組み合わせ、またはI/Oコントローラ15とI/Oデバイス17または18との組み合わせ、に対応する。
デバイス(#A)21およびデバイス(#B)22は、PCI EXPRESSリンク30を介して相互接続されている。PCI EXPRESSリンク30は、デバイス(#A)21とデバイス(#B)22との間をポイントツーポイント形式で接続するシリアルインタフェース(シリアルバス)である。このPCI EXPRESSリンク30は、デバイス(#A)21からデバイス(#B)22の方向に情報を伝送するための差動信号線対と、デバイス(#B)22からデバイス(#A)21の方向に情報を伝送するための差動信号線対とを含む。PCI EXPRESSリンク30を介したデバイス(#A)21とデバイス(#B)22との間の情報の伝送は、パケットを用いて実行される。
メモリライトリクエスト、メモリリードリクエスト、I/Oライトリクエスト、I/Oリードリクエストのような様々なトランザクションは、すべてパケットを用いてデバイス(#A)21とデバイス(#B)22との間で伝送される。
デバイス(#A)21およびデバイス(#B)22は、デバイス(#A)21とデバイス(#B)22との間で伝送される情報に対するフロー制御を実現するために、フローコントロールユニット31および32をそれぞれ備えている。デバイス(#A)21のフローコントロールユニット31は、デバイス(#A)21内の有効な受信バッファのサイズを示すクレジット値をフローコントロール情報としてデバイス(#B)22内のフローコントロールユニット32に送信する。デバイス(#B)22は、デバイス(#A)21からのクレジット値で指定されるサイズ分の情報をデバイス(#A)21に送信することができる。同様に、デバイス(#B)22のフローコントロールユニット32は、デバイス(#B)22内の有効な受信バッファのサイズを示すクレジット値をフローコントロール情報としてデバイス(#A)21内のフローコントロールユニット31に送信する。デバイス(#A)21は、デバイス(#B)22からのクレジット値で指定されるサイズ分の情報をデバイス(#B)22に送信することができる。
次に、図3を参照して、各デバイスに設けられるフローコントロールユニットの構成について説明する。図3では、デバイス(#A)21のフローコントロールユニット31が代表して示されている。
PCI EXPRESS規格に対応する各デバイスの機能は、トランザクションレイヤ、データリンクレイヤ、物理レイヤの3つのレイヤに分類されている。フローコントロールはトランザクションレイヤによって実現される。フローコントロールユニット31はトランザクションレイヤとして機能するユニットである。
このフローコントロールユニット31は、図示のように、受信バッファ101、受信フローコントロール部102、および受信フローコントロール更新部103を備えている。
受信バッファ101は、デバイス(#B)22から受信されたパケット(トランザクションレイヤパケットTLP)を保持するためのバッファである。トランザクションレイヤパケットTLPは、図5に示すように、ヘッダと、必要なデータ(データペイロード)とを含む。ヘッダのサイズは12バイトまたは16バイトである。データのサイズは可変長であり、最小サイズは0バイト、最大サイズは4Kバイトである。すなわち、TLPは、ヘッダを含むがデータは含まないパケット、およびヘッダとデータの双方を含むパケットのいずれかから構成される。TLPのフローコントロールは、クレジットを単位として行われる。1クレジットは16バイトである。
例えば、メモリリードを要求するメモリリードリクエストパケット、I/Oリードを要求するI/Oリードリクエストパケット、およびコンフィグレーションリードを要求するコンフィグレーションリードリクエストパケットの各々は、ヘッダのみから構成されデータペイロードは含まない。また例えば、メモリライトを要求するメモリライトリクエストパケットは、ヘッダと可変長のデータペイロードの双方を含む。
デバイス(#A)21のフローコントロールユニット31からデバイス(#B)22に送信されるフローコントロール情報は、受信可能なヘッダのサイズを示すクレジット値と、受信可能なデータのサイズを示すクレジット値とを含む。クレジット値はクレジット数とも称される。フローコントロール情報は、データリンクレイヤによって生成されるデータリンクレイヤパケットDLLPを用いて送信される。
TLPのヘッダは、TLPの目的および特徴を判別するために必要な情報を含む複数のフィールドから構成される。TLPのヘッダには、後続するデータペイロードのサイズを示すフィールドも含まれている。
フローコントロールユニット31は、デバイス(#A)21の初期化時に、有効な受信バッファ101のサイズを示す初期クレジット値を含むフローコントロール情報をフローコントロールDLLP(FC DLLP)を用いて、相手デバイスであるデバイス(#A)21に送信する。このフローコントロール情報には、受信可能なヘッダのサイズを示すクレジット数と、受信可能なデータのサイズを示すクレジット数とが含まれている。デバイス(#A)21は、フローコントロール情報で指定されるヘッダサイズおよびデータサイズの分だけ、ヘッダおよびデータを送信することができる。
受信フローコントロール部102は、デバイス(#B)22から受信されたTLPのヘッダを参照して、当該受信TLPに含まれるヘッダおよびデータそれぞれのサイズをクレジット情報として取得する。そして、受信フローコントロール部102は、受信バッファ101のオーバーフローを防止するために、受信バッファ101への受信TLPの書き込みを許可または禁止するための書き込み制御を実行する。この書き込み制御は、フローコントロール情報によってデバイス(#B)22に送信を許可したヘッダサイズおよびデータサイズと、受信TLPのヘッダサイズおよびデータサイズとに基づいて実行される。
受信フローコントロール更新部103は、受信バッファ101から出力されたTLPのヘッダから、当該TLPに含まれるヘッダおよびデータそれぞれのサイズをクレジット情報として取得する。そして、受信フローコントロール更新部103は、取得したクレジット情報に基づいて、処理済みのヘッダのサイズおよび処理済みのデータのサイズをそれぞれ計数する。処理済みのヘッダのサイズに対応するクレジット数が、ソフトウェアによって設定されるヘッダ用更新クレジット数(P1)に達した場合、あるいは処理済みのデータのサイズに対応するクレジット数が、ソフトウェアによって設定されるデータ用更新クレジット数(P2)に達した場合、受信フローコントロール更新部103は、更新フローコントロール情報を更新フローコントロールDLLP(UpdateFC DLLP)を用いてデバイス(#A)21に送信する。UpdateFC DLLPも、データリンクレイヤによって生成されるデータリンクレイヤパケットDLLPの一種である。更新フローコントロール情報は、デバイス(#A)21が受信可能なヘッダのサイズを示す新たなクレジット数(更新ヘッダクレジット数)、およびデバイス(#A)21が受信可能なデータのサイズを示す新たなクレジット数(更新データクレジット数)を含む。更新ヘッダクレジット数および更新データクレジット数は受信フローコントロール部102にも与えられる。
図4には、受信フローコントロール更新部103の構成例が示されている。受信フローコントロール更新部103は、ヘッダ/データクレジット数検出部201、ヘッダ用処理済クレジット数カウンタ202、データ用処理済クレジット数カウンタ203、更新クレジット数生成部204、およびUpdateFC DLLP発行部205を備えている。
ヘッダ/データクレジット数検出部201は、受信バッファ101から出力されたTLPのヘッダを解析して、当該TLPに含まれるヘッダおよびデータそれぞれのクレジット数を検出する。どのTLPにおいても、ヘッダのクレジット数は1クレジットである。一方、データのクレジット数は、TLPに含まれるデータのサイズによって決定される。ヘッダ用処理済クレジット数カウンタ202は、ヘッダ用処理済クレジット数(Q1)をカウントするためのカウンタである。ヘッダ用処理済クレジット数(Q1)は、現時点までに受信バッファ101から出力されて処理済となったヘッダのサイズの合計を、クレジットを単位として示す値である。一つのTLPに含まれるヘッダのクレジット数は常に1クレジットであるので、ヘッダ用処理済クレジット数(Q1)の値は、受信バッファ101からTLPが出力されるたびに、+1される。つまり、ヘッダ用処理済クレジット数(Q1)の値は、処理済のTLPの個数に一致する。データ用処理済クレジット数カウンタ203は、データ用処理済クレジット数(Q2)をカウントするためのカウンタである。データ用処理済クレジット数(Q2)は、現時点までに受信バッファ101から出力されて処理済となったデータのサイズの合計をクレジットを単位として示す値である。一つのTLPに含まれるデータのクレジット数は可変であるので、データ用処理済クレジット数(Q2)の値は、受信バッファ101からTLPが出力されるたびに、その出力されたTLPに含まれるデータサイズに対応するクレジット数分だけ増加される。
更新クレジット数生成部204は、ヘッダ用処理済クレジット数(Q1)がヘッダ用更新クレジット数(P1)に達すること、あるいはデータ用処理済クレジット数(Q2)がデータ用更新クレジット数(P2)以上の値に達すること、のいずれかの事象の発生によって動作し、更新ヘッダクレジット数および更新データクレジット数を算出する。この場合、例えば、上記事象発生発生時におけるヘッダ用処理済クレジット数(Q1)の値が更新ヘッダクレジット数として用いられ、上記事象発生時におけるデータ用処理済クレジット数(Q2)の値が更新データクレジット数として用いられる。UpdateFC DLLP発行部205は、更新クレジット数生成部204によって得られた更新ヘッダクレジット数および更新データクレジット数を含むフロー制御情報をUpdateFC DLLPとして生成し、そのUpdateFC DLLPを相手デバイスに送信する。
次に、図6のフローチャートを参照して、フローコントロールユニット31の動作を説明する。
フローコントロールユニット31は、まず、ヘッダ用更新クレジット数P1およびデータ用更新クレジット数P2をソフトウェアから取得する(ステップS101)。これらヘッダ用更新クレジット数P1およびデータ用更新クレジット数P2はフローコントロールユニット31内のレジスタ等に保持され、UpdateFC DLLPを発行するタイミングを判定するための基準値として使用される。次いで、フローコントロールユニット31は、ヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2の値をそれぞれ初期化して、Q1=0,Q2=0に設定する(ステップS102)。
デバイス(#A)21のトランザクションレイヤは、受信バッファ101の先頭からTLPを順次読み出して処理する。この結果、デバイス(#A)21内のメモリやレジスタに対するリード/ライトアクセス等が実行される。フローコントロールユニット31は、受信バッファ101からTLPが出力されると(ステップS103のYES)、そのTLPに含まれるヘッダおよびデータそれぞれのクレジット数に基いて、ヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2を更新する(ステップS104)。ヘッダ用処理済クレジット数Q1は+1増加され、データ用処理済クレジット数Q2はTLPに含まれるデータのクレジット数分だけ増加される。TLPにデータが含まれていない場合には、データ用処理済クレジット数Q2は更新されない。
フローコントロールユニット31は、
・P1=Q1
・P2≦Q2
のいずれかの条件が成立すると(ステップS105のYES、またはステップS106のYES)、更新ヘッダクレジット数および更新データクレジット数を含むフローコントロール情報をUpdateFC DLLPとして発行する(ステップS107)。UpdateFC DLLPは、相手デバイスに送信される。この後、フローコントロールユニット31は、ヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2の値をそれぞれ初期化して、Q1=0,Q2=0に設定する(ステップS102)。
・P1=Q1
・P2≦Q2
のいずれかの条件が成立すると(ステップS105のYES、またはステップS106のYES)、更新ヘッダクレジット数および更新データクレジット数を含むフローコントロール情報をUpdateFC DLLPとして発行する(ステップS107)。UpdateFC DLLPは、相手デバイスに送信される。この後、フローコントロールユニット31は、ヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2の値をそれぞれ初期化して、Q1=0,Q2=0に設定する(ステップS102)。
以上のように、フローコントロールユニット31においては、受信バッファ101から実際に出力されたパケットに含まれるヘッダおよびデータそれぞれのサイズに基づいて、処理済のヘッダのサイズおよび処理済のデータのサイズそれぞれが管理される。処理済のヘッダのサイズおよび処理済のデータのサイズの少なくとも一方がある基準値に達したときに、UpdateFC DLLPが発行される。よって、送信デバイスがクレジット不足に陥る前の最適なタイミングでクレジットを送信デバイスに送信することが可能となり、UpdateFC DLLPの多発による帯域の占有や、送信デバイスがクレジット不足に陥ることを防ぐことができる。また、フローコントロールユニット31のフロー制御は、ヘッダとデータとを区別しているので、大きなサイズのデータを伴うパケットによって受信バッファが専有されてしまうことを防止することができる。よって、受信バッファのオーバーフローを招くことなく、ヘッダのみから構成されるパケット、およびヘッダおよびデータを含むパケットの双方を効率よく転送することができる。
図7には、フローコントロールユニット31の他の構成例が示されている。このフローコントロールユニット31は、図3の構成に加え、タイマ104を備えている。タイマ104は、フローコントロール情報の前回の送信からの経過時間を測定するために使用される。受信フローコントロール更新部103は、ある長い期間UpdateFC DLLPが一切発行されないという事態の発生を防止するために、ヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2と、タイマ104の値とを併用して、UpdateFC DLLPの発行タイミングを管理する。
図8のフローチャートは、図7のフローコントロールユニット31の動作を示している。フローコントロールユニット31は、まず、ヘッダ用更新クレジット数P1およびデータ用更新クレジット数P2をソフトウェアから取得する(ステップS201)。これらヘッダ用更新クレジット数P1およびデータ用更新クレジット数P2はフローコントロールユニット31内のレジスタ等に保持され、UpdateFC DLLPを発行するタイミングを判定するための基準値として使用される。次いで、フローコントロールユニット31は、ヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2の値をそれぞれ初期化して、Q1=0,Q2=0に設定する(ステップS202)。このステップS202においては、さらに、タイマ104の初期化も行われる。デバイス(#A)21のトランザクションレイヤは、受信バッファ101の先頭からTLPを順次読み出して処理する。この結果、デバイス(#A)21内のメモリやレジスタに対するリード/ライトアクセス等が実行される。
フローコントロールユニット31は、タイマ104の値が予め決められた設定値を超えたかどうか(タイムアウトが発生したどうか)を判断する(ステップS203)。もしタイムアウトが発生したならば(ステップS203のYES)、フローコントロールユニット31は、更新ヘッダクレジット数および更新データクレジット数を含むフローコントロール情報をUpdateFC DLLPとして発行する(ステップS207)。更新ヘッダクレジット数および更新データクレジット数は、例えば、現在のヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2の値に基づいてそれぞれ生成される。この後、フローコントロールユニット31は、ステップS202に戻り、そこでヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2の初期化と、タイマ104の初期化を行う。
タイマ104の値が予め決められた設定値を超えていないならば(ステップS203のNO)、フローコントロールユニット31は、受信バッファ101からTLPが出力されたかどうかを判断する(ステップS204)。受信バッファ101からTLPが出力されると(ステップS204のYES)、フローコントロールユニット31は、そのTLPに含まれるヘッダおよびデータそれぞれのクレジット数に基いて、ヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2を更新する(ステップS205)。ヘッダ用処理済クレジット数Q1は+1増加され、データ用処理済クレジット数Q2はTLPに含まれるデータのクレジット数分だけ増加される。TLPにデータが含まれていない場合には、データ用処理済クレジット数Q2は更新されない。
フローコントロールユニット31は、
・P1=Q1
・P2≦Q2
のいずれかの条件が成立すると(ステップS206のYES、またはステップS207のYES)、更新ヘッダクレジット数および更新データクレジット数を含むフローコントロール情報をUpdateFC DLLPとして発行する(ステップS208)。この後、フローコントロールユニット31は、ステップS202に戻り、そこでヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2の初期化と、タイマ104の初期化を行う。
・P1=Q1
・P2≦Q2
のいずれかの条件が成立すると(ステップS206のYES、またはステップS207のYES)、更新ヘッダクレジット数および更新データクレジット数を含むフローコントロール情報をUpdateFC DLLPとして発行する(ステップS208)。この後、フローコントロールユニット31は、ステップS202に戻り、そこでヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2の初期化と、タイマ104の初期化を行う。
送信デバイスから送信されるTLPの数が比較的少ない場合には、ヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2の値もなかなか増加しない。このため、P1=Q1、P2≦Q2のどちらの条件も満たされず、UpdateFC DLLPが長い期間一切送信されないという状況が発生することがある。送信デバイスは、受信デバイスにエラーが発生したのか、あるいは受信デバイスからのUpdateFC DLLPを自身が受信し損ねたのかを判別することができない。よって、UpdateFC DLLPが長い期間一切送信されないという状況は、動作の信頼性の観点から好ましくない。図7のフローコントロールユニット31においては、タイマ104を併用することにより、UpdateFC DLLPが送信されない時間の長さの上限をある一定時間内に制限することが可能となり、UpdateFC DLLPが長い期間一切送信されないという事態の発生を防止することができる。
次に、図9を参照して、図3または図7のフローコントロールユニット31に設けられる受信フローコントロール更新部103の他の構成例について説明する。
図9の受信フローコントロール更新部103は、バーチャルチャネル毎に以下の3つのTLPタイプを区別する。
・ポステッドリクエスト(P): このTLPは、受信デバイスからのリターンを必要としないリクエスト用パケットである。例えば、メモリライトリクエストパケットは、ポステッドリクエストである。
・ノンポステッドリクエスト(NP): このTLPは、受信デバイスからのリターンを必要とするリクエスト用パケットである。例えば、すべてのリードリクエストパケット、I/Oライトリクエストパケット、コンフィグレーションライトリクエストパケットは、ノンポステッドリクエストである。
・コンプリション(CPL): このTLPは、対応するノンポステッドリクエストに関連するリターン用のパケットである。例えば、リードデータを送信するためのパケット、アクノリッジを送信するためのパケットは、コンプリションパケットである。
受信フローコントロール更新部103のフロー制御は、TLPタイプ毎にさらにヘッダとデータとを区別する。よって、フロー制御では、バーチャルチャネル毎に以下の計6つのタイプの情報が管理される。
・ポステッドリクエスト(P)のヘッダ(PH)
・ポステッドリクエスト(P)のデータ(PD)
・ノンポステッドリクエスト(NP)のヘッダ(NPH)
・ノンポステッドリクエスト(NP)のデータ(NPD)
・コンプリション(CPL)のヘッダ(CPLH)
・コンプリション(CPL)のデータ(CPLD)
受信フローコントロール更新部103は、バーチャルチャネル判定部401、複数のバーチャルチャネル(VC#0,VC#1,…VC#n)それぞれに対応するn個の受信フローコントロール更新モジュール402を備えている。バーチャルチャネルは、PCI EXPRESSリンク30上に確立される仮想的なチャネルである。フロー制御は、バーチャルチャネル毎に独立して実行される。
・ポステッドリクエスト(P)のデータ(PD)
・ノンポステッドリクエスト(NP)のヘッダ(NPH)
・ノンポステッドリクエスト(NP)のデータ(NPD)
・コンプリション(CPL)のヘッダ(CPLH)
・コンプリション(CPL)のデータ(CPLD)
受信フローコントロール更新部103は、バーチャルチャネル判定部401、複数のバーチャルチャネル(VC#0,VC#1,…VC#n)それぞれに対応するn個の受信フローコントロール更新モジュール402を備えている。バーチャルチャネルは、PCI EXPRESSリンク30上に確立される仮想的なチャネルである。フロー制御は、バーチャルチャネル毎に独立して実行される。
各TLPのヘッダには、当該TLPに対応するバーチャルチャネルを識別するための識別子(TC)が含まれている。バーチャルチャネル判定部401は、受信バッファ101から出力されるTLPのヘッダに含まれるTCに基づいて、当該TLPに対応するバーチャルチャネル番号(VC#0,VC#1,…VC#n)を判別する。VC#0のTLPに関する情報はVC#0用の受信フローコントロール更新モジュール402によって処理され、VC#1のTLPに関する情報はVC#1用の受信フローコントロール更新モジュール402によって処理され、VC#nのTLPに関する情報はVC#n用の受信フローコントロール更新モジュール402によって処理される。
各受信フローコントロール更新モジュール402は、TLPタイプ判定部501、P用受信フローコントロール更新部502、NP用受信フローコントロール更新部503、およびCPL用受信フローコントロール更新部504を備えている。各受信フローコントロール更新モジュール402は、P,NP,CPLの各々毎に、ヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2を計数する。
TLPタイプ判定部501は、対応するバーチャルチャネルのTLPのヘッダに含まれるTLPタイプ識別情報に基づいて、当該TLPがP,NP,CPLのいずれのタイプであるかを判別する。タイプPのTLPに関する情報はP用受信フローコントロール更新部502によって処理され、タイプNPのTLPに関する情報はNP用受信フローコントロール更新部503によって処理され、タイプCPLのTLPに関する情報はCPL用受信フローコントロール更新部504によって処理される。P用受信フローコントロール更新部502、NP用受信フローコントロール更新部503、およびCPL用受信フローコントロール更新部504の各々は、図4で説明した構成を有している。またP用受信フローコントロール更新部502、NP用受信フローコントロール更新部503、およびCPL用受信フローコントロール更新部504の各々は、タイマを内蔵しており、ヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2と、タイマの値とを併用して、UpdateFC DLLPの発行タイミングを管理する。
次に、図10のフローチャートを参照して、図9の受信フローコントロール更新部103の動作を説明する。
受信フローコントロール更新部103は、まず、各VC毎にP,NP,CPLの各々に対応するヘッダ用更新クレジット数P1およびデータ用更新クレジット数P2をソフトウェアから取得する(ステップS301)。これらヘッダ用更新クレジット数P1およびデータ用更新クレジット数P2は受信フローコントロール更新部103内のレジスタ等に保持され、UpdateFC DLLPを発行するタイミングを判定するための基準値として使用される。次いで、受信フローコントロール更新部103は、各VC毎にP,NP,CPLの各々に対応するヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2の値をそれぞれ初期化して、Q1=0,Q2=0に設定する(ステップS302)。ステップS302においては、さらに、各VC毎にP,NP,CPLの各々に対応するタイマを初期化する処理も行なわれる。タイマは、VCとTLPタイプとの各組み合わせ毎に設けられている。
受信フローコントロール更新部103は、各タイマの値が予め決められた設定値を超えたかどうか(タイムアウトが発生したどうか)を判断する(ステップS303〜307)。どのタイマの値も予め決められた設定値を超えていないならば、受信フローコントロール更新部103は、受信バッファ101からTLPが出力されたかどうかを判断する(ステップS308)。受信バッファ101からTLPが出力されると(ステップS308のYES)、受信フローコントロール更新部103は、当該TLPに対応するバーチャルチャネル番号を判定する(ステップS309)。TLPに対応するバーチャルチャネル番号は、当該TLPのヘッダに含まれるTCの値によって決定される。この後、受信フローコントロール更新部103は、受信バッファ101から出力されたTLPが、P,N,CPLのいずれのTLPタイプであるかを判別する(ステップS310)。そして、P,N,CPLの各々のTLPタイプ毎に、以下の処理が実行される。ここでは、受信バッファ101から出力されたTLPのバーチャルチャネル番号がVC#0で、TLPタイプがPである場合を想定する。
受信フローコントロール更新部103は、受信バッファ101から出力されたタイプPのTLPに含まれるヘッダおよびデータそれぞれのクレジット数に基いて、ヘッダ用処理済クレジット数Q1およびデータ用処理済クレジット数Q2を更新する(ステップS401)。ヘッダ用処理済クレジット数Q1は+1増加され、データ用処理済クレジット数Q2はタイプPのTLPに含まれるデータのクレジット数分だけ増加される。タイプPのTLPにデータが含まれていない場合には、データ用処理済クレジット数Q2は更新されない。
受信フローコントロール更新部103は、
・P1=Q1
・P2≦Q2
のいずれかの条件が成立すると(ステップS402のYES、またはステップS403のYES)、受信可能なタイプPのヘッダのクレジット数を示す更新ヘッダクレジット数と、受信可能なタイプPのデータのクレジット数を示す更新データクレジット数とを含むフローコントロール情報をUpdateFC DLLPとして発行する(ステップS404)。UpdateFC DLLPは、バーチャルチャネル番号、TLPタイプ(=P)も含む。この後、受信フローコントロール更新部103は、タイプPに対応するヘッダ用処理済クレジット数Q1およびタイプPに対応するデータ用処理済クレジット数Q2の初期化と、バーチャルチャネル番号VC#0とタイプPとの組み合わせに対応するタイマの初期化を行う(ステップS405)。
・P1=Q1
・P2≦Q2
のいずれかの条件が成立すると(ステップS402のYES、またはステップS403のYES)、受信可能なタイプPのヘッダのクレジット数を示す更新ヘッダクレジット数と、受信可能なタイプPのデータのクレジット数を示す更新データクレジット数とを含むフローコントロール情報をUpdateFC DLLPとして発行する(ステップS404)。UpdateFC DLLPは、バーチャルチャネル番号、TLPタイプ(=P)も含む。この後、受信フローコントロール更新部103は、タイプPに対応するヘッダ用処理済クレジット数Q1およびタイプPに対応するデータ用処理済クレジット数Q2の初期化と、バーチャルチャネル番号VC#0とタイプPとの組み合わせに対応するタイマの初期化を行う(ステップS405)。
また、バーチャルチャネル番号VC#0とタイプPとの組み合わせに対応するタイマのタイムアウトが発生した場合も(ステップS303のYES)、受信フローコントロール更新部103は、受信可能なタイプPのヘッダのクレジット数を示す更新ヘッダクレジット数と、受信可能なタイプPのデータのクレジット数を示す更新データクレジット数とを含むフローコントロール情報をUpdateFC DLLPとして発行する(ステップS404)。UpdateFC DLLPは、バーチャルチャネル番号、およびTLPタイプ(=P)も含む。この後、受信フローコントロール更新部103は、タイプPに対応するヘッダ用処理済クレジット数Q1およびタイプPに対応するデータ用処理済クレジット数Q2の初期化と、バーチャルチャネル番号VC#0とタイプPとの組み合わせに対応するタイマの初期化を行う(ステップS405)。
以上のように、TLPタイプ毎にフロー制御を行うことにより、ある特定のタイプのTLPによって受信バッファが占有されることを防止することができ、すべてのタイプのTLPの転送を効率よく行うことができる。
なお、本実施形態のフロー制御はソフトウェアによって実現することもできる。また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
1…データ処理装置、21,22…PCI EXPRESSデバイス、31,32…フローコントロールユニット、101…受信バッファ、102…受信フローコントロール更新部、103…受信フローコントロール更新部、201…ヘッダ/データクレジット数検出部、202…ヘッダ用処理済クレジット数カウンタ、203…データ用処理済クレジット数カウンタ、204…更新クレジット数生成部、205…UpdateFC DLLP発行部。
Claims (10)
- 第1のデバイスと、
前記第1のデバイスとの通信を実行する第2のデバイスと、
前記第2のデバイスに設けられ、前記第1のデバイスから送信されるパケットを保持する受信バッファであって、前記パケットは、ヘッダおよび可変長のデータを含むパケットおよびヘッダを含みデータを含まないパケットのいずれかである受信バッファと、
前記第2のデバイスに設けられ、前記受信バッファから出力されたパケットに含まれるヘッダおよびデータそれぞれのサイズに基づいて、処理済みのヘッダのサイズを示す第1の値および処理済みのデータのサイズを示す第2の値をそれぞれ計数する計数手段と、
前記第2のデバイスに設けられ、前記第1の値および前記第2の値の少なくとも一方が、前記第1の値および前記第2の値それぞれに対応する基準値に達した場合、前記第2のデバイスが受信可能なヘッダおよびデータそれぞれのサイズを示すフローコントロール情報を前記第1のデバイスに送信するフローコントロール情報送信手段とを具備することを特徴とするデータ処理装置。 - 前記計数手段は、前記第1の値および前記第2の値を、所定サイズのクレジットを単位としてそれぞれ計数する手段を含むことを特徴とする請求項1記載のデータ処理装置。
- 前記フローコントロール情報の前回の送信からの経過時間を測定するタイマをさらに具備し、
前記フローコントロール情報送信手段は、
前記第1の値および前記第2の値の少なくとも一方が前記第1の値および前記第2の値それぞれに対応する基準値に達すること、および前記フローコントロール情報の前回の送信からの経過時間が所定時間に達すること、のいずれかの条件が成立したことに応答して、前記フローコントロール情報を前記第1のデバイスに送信する手段を含むことを特徴とする請求項1記載のデータ処理装置。 - 前記第2のデバイスに設けられ、前記受信バッファから出力されたパケットが、ポステッドリクエストパケット、ノンポステッドリクエストパケット、およびコンプリションパケットのいずれのパケットタイプであるかを判別する手段をさらに具備し、
前記計数手段は、前記パケットタイプ毎に、前記第1の値および前記第2の値を計数する手段を含むことを特徴とする請求項1記載のデータ処理装置。 - 他のデバイスとの通信を実行するデバイスであって、
前記他のデバイスから送信されるパケットを保持する受信バッファであって、前記パケットは、ヘッダおよび可変長のデータを含むパケットおよびヘッダを含みデータを含まないパケットのいずれかである受信バッファと、
前記受信バッファから出力されたパケットに含まれるヘッダおよびデータそれぞれのサイズに基づいて、処理済みのヘッダのサイズを示す第1の値および処理済みのデータのサイズを示す第2の値をそれぞれ計数する計数手段と、
前記第1の値および前記第2の値の少なくとも一方が、前記第1の値および前記第2の値それぞれに対応する基準値に達した場合、受信可能なヘッダおよびデータそれぞれのサイズを示すフローコントロール情報を前記他のデバイスに送信するフローコントロール情報送信手段とを具備することを特徴とするデバイス。 - 前記フローコントロール情報の前回の送信からの経過時間を測定するタイマをさらに具備し、
前記フローコントロール情報送信手段は、
前記第1の値および前記第2の値の少なくとも一方が前記第1の値および前記第2の値それぞれに対応する基準値に達すること、および前記フローコントロール情報の前回の送信からの経過時間が所定時間に達すること、のいずれかの条件が成立したことに応答して、前記フローコントロール情報を前記他のデバイスに送信する手段を含むことを特徴とする請求項5記載のデバイス。 - 前記受信バッファから出力されたパケットが、ポステッドリクエストパケット、ノンポステッドリクエストパケット、およびコンプリションパケットのいずれのパケットタイプであるかを判別する手段をさらに具備し、
前記計数手段は、前記パケットタイプ毎に、前記第1の値および前記第2の値を計数する手段を含むことを特徴とする請求項5記載のデバイス。 - 第1のデバイスから第2のデバイスに設けられた受信バッファへのパケットの流れを制御するためのフロー制御を実行するフロー制御方法であって、
前記パケットは、ヘッダおよび可変長のデータを含むパケットおよびヘッダを含みデータを含まないパケットのいずれかであり、
前記受信バッファから出力されたパケットに含まれるヘッダおよびデータそれぞれのサイズに基づいて、処理済みのヘッダのサイズを示す第1の値および処理済みのデータのサイズを示す第2の値をそれぞれ計数する計数ステップと、
前記第1の値および前記第2の値の少なくとも一方が、前記第1の値および前記第2の値それぞれに対応する基準値に達した場合、前記第2のデバイスが受信可能なヘッダおよびデータそれぞれのサイズを示すフローコントロール情報を前記第2のデバイスから前記第1のデバイスに送信するフローコントロール情報送信ステップとを具備することを特徴とするフロー制御方法。 - 前記フローコントロール情報の前回の送信からの経過時間を測定するステップをさらに具備し、
前記フローコントロール情報送信ステップは、
前記第1の値および前記第2の値の少なくとも一方が前記第1の値および前記第2の値それぞれに対応する基準値に達すること、および前記フローコントロール情報の前回の送信からの経過時間が所定時間に達すること、のいずれかの条件が成立したことに応答して、前記フローコントロール情報を前記第2のデバイスから前記第1のデバイスに送信するステップを含むことを特徴とする請求項8記載のフロー制御方法。 - 前記受信バッファから出力されたパケットが、ポステッドリクエストパケット、ノンポステッドリクエストパケット、およびコンプリションパケットのいずれのパケットタイプであるかを判別するステップをさらに具備し、
前記計数ステップは、前記パケットタイプ毎に、前記第1の値および前記第2の値を計数するステップを含むことを特徴とする請求項8記載のフロー制御方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004150657A JP2005332250A (ja) | 2004-05-20 | 2004-05-20 | データ処理装置およびフロー制御方法 |
EP20050102654 EP1598746A3 (en) | 2004-05-20 | 2005-04-04 | Data processing apparatus and flow control method |
US11/114,099 US20050259651A1 (en) | 2004-05-20 | 2005-04-26 | Data processing apparatus and flow control method |
CNB2005100684064A CN100417134C (zh) | 2004-05-20 | 2005-04-29 | 数据处理设备和流控制方法 |
KR20050036039A KR100715710B1 (ko) | 2004-05-20 | 2005-04-29 | 데이터 처리 장치 및 흐름 제어 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004150657A JP2005332250A (ja) | 2004-05-20 | 2004-05-20 | データ処理装置およびフロー制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005332250A true JP2005332250A (ja) | 2005-12-02 |
Family
ID=34939134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004150657A Pending JP2005332250A (ja) | 2004-05-20 | 2004-05-20 | データ処理装置およびフロー制御方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20050259651A1 (ja) |
EP (1) | EP1598746A3 (ja) |
JP (1) | JP2005332250A (ja) |
KR (1) | KR100715710B1 (ja) |
CN (1) | CN100417134C (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012039661A (ja) * | 2008-12-29 | 2012-02-23 | Apple Inc | リソースの粒度がクレジットの粒度よりも大きいときのクレジット管理 |
JP2012516664A (ja) * | 2009-01-29 | 2012-07-19 | クゥアルコム・インコーポレイテッド | データ・オーバフローを回避するように受信機バッファを適応させるための方法および装置 |
WO2014115250A1 (ja) * | 2013-01-22 | 2014-07-31 | 富士通株式会社 | データ転送装置、データ転送方法およびデータ転送プログラム |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005008978A1 (ja) * | 2003-07-18 | 2005-01-27 | Fujitsu Limited | 送信主導型フロー制御装置 |
US8018849B1 (en) * | 2005-03-25 | 2011-09-13 | Tilera Corporation | Flow control in a parallel processing environment |
US7698477B2 (en) * | 2005-11-30 | 2010-04-13 | Lsi Corporation | Method and apparatus for managing flow control in PCI express transaction layer |
US7694049B2 (en) * | 2005-12-28 | 2010-04-06 | Intel Corporation | Rate control of flow control updates |
US8255599B2 (en) * | 2006-03-28 | 2012-08-28 | Integrated Device Technology Inc. | Packets transfer device having data absorbing buffers with elastic buffer capacities |
CN101184022B (zh) * | 2006-11-13 | 2011-10-05 | 中芯国际集成电路制造(上海)有限公司 | 信用处理装置和流控制传输装置及其方法 |
US8166156B2 (en) * | 2006-11-30 | 2012-04-24 | Nokia Corporation | Failure differentiation and recovery in distributed systems |
US20080313240A1 (en) * | 2007-06-18 | 2008-12-18 | Freking Ronald E | Method for Creating Data Transfer Packets With Embedded Management Information |
US20090003335A1 (en) * | 2007-06-29 | 2009-01-01 | International Business Machines Corporation | Device, System and Method of Fragmentation of PCI Express Packets |
US8984193B1 (en) * | 2007-07-17 | 2015-03-17 | Unisys Corporation | Line speed sequential transaction packet processing |
US7869356B2 (en) * | 2007-12-18 | 2011-01-11 | Plx Technology, Inc. | Dynamic buffer pool in PCIExpress switches |
GB2465595B (en) * | 2008-11-21 | 2010-12-08 | Nokia Corp | A method and an apparatus for a gateway |
CN101534173B (zh) * | 2009-04-20 | 2011-11-09 | 福建星网锐捷网络有限公司 | 一种数据流量控制方法和系统 |
US8819305B2 (en) * | 2009-11-16 | 2014-08-26 | Intel Corporation | Directly providing data messages to a protocol layer |
JP5614410B2 (ja) * | 2009-11-27 | 2014-10-29 | 日本電気株式会社 | フロー制御装置、ネットワークシステム、ネットワーク制御方法およびプログラム |
JP5414506B2 (ja) * | 2009-12-18 | 2014-02-12 | キヤノン株式会社 | データ処理装置、データ処理方法、及びプログラム |
CN101964745B (zh) * | 2010-06-12 | 2012-06-27 | 福建星网锐捷网络有限公司 | 一种网络转发设备及其进行报文转发的方法 |
JP5958192B2 (ja) * | 2012-08-30 | 2016-07-27 | 富士通株式会社 | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 |
US9524261B2 (en) | 2012-12-21 | 2016-12-20 | Apple Inc. | Credit lookahead mechanism |
CN104375967B (zh) * | 2013-08-15 | 2017-09-05 | 华为技术有限公司 | 一种应用于pci‑e的流量控制方法、设备及系统 |
US9760514B1 (en) * | 2016-09-26 | 2017-09-12 | International Business Machines Corporation | Multi-packet processing with ordering rule enforcement |
KR20230045306A (ko) | 2021-09-28 | 2023-04-04 | 삼성전자주식회사 | 흐름 제어 모니터링을 통하여 동작을 제어하는 스토리지 장치 및 시스템 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5063562A (en) * | 1990-05-23 | 1991-11-05 | International Business Machines Corporation | Flow control for high speed networks |
JPH04108242A (ja) * | 1990-08-28 | 1992-04-09 | Nec Corp | 通信制御装置のデータ転送方式 |
US5848297A (en) * | 1991-12-30 | 1998-12-08 | Apple Computer, Inc. | Control apparatus for maintaining order and accomplishing priority promotion in a computer interconnect |
US5260942A (en) * | 1992-03-06 | 1993-11-09 | International Business Machines Corporation | Method and apparatus for batching the receipt of data packets |
SG47794A1 (en) * | 1993-09-30 | 1998-04-17 | Intel Corp | Buffer memory management for a computer network node |
JP2929991B2 (ja) * | 1996-01-29 | 1999-08-03 | 日本電気株式会社 | 最適化クレジット制御方法 |
US5920698A (en) * | 1997-01-06 | 1999-07-06 | Digital Equipment Corporation | Automatic detection of a similar device at the other end of a wire in a computer network |
US6977930B1 (en) * | 2000-02-14 | 2005-12-20 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
US20020167948A1 (en) * | 2001-05-09 | 2002-11-14 | Dayong Chen | Communications methods, apparatus, computer program products and data structures using segment sequence numbers |
US6826634B2 (en) | 2002-06-10 | 2004-11-30 | Sun Microsystems, Inc. | Extended message block for network device drivers |
US6760793B2 (en) * | 2002-07-29 | 2004-07-06 | Isys Technologies, Inc. | Transaction credit control for serial I/O systems |
-
2004
- 2004-05-20 JP JP2004150657A patent/JP2005332250A/ja active Pending
-
2005
- 2005-04-04 EP EP20050102654 patent/EP1598746A3/en not_active Withdrawn
- 2005-04-26 US US11/114,099 patent/US20050259651A1/en not_active Abandoned
- 2005-04-29 CN CNB2005100684064A patent/CN100417134C/zh not_active Expired - Fee Related
- 2005-04-29 KR KR20050036039A patent/KR100715710B1/ko not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012039661A (ja) * | 2008-12-29 | 2012-02-23 | Apple Inc | リソースの粒度がクレジットの粒度よりも大きいときのクレジット管理 |
US8400924B2 (en) | 2008-12-29 | 2013-03-19 | Apple Inc. | Credit management when resource granularity is larger than credit granularity |
JP2012516664A (ja) * | 2009-01-29 | 2012-07-19 | クゥアルコム・インコーポレイテッド | データ・オーバフローを回避するように受信機バッファを適応させるための方法および装置 |
US9137160B2 (en) | 2009-01-29 | 2015-09-15 | Qualcomm Incorporated | Method and apparatus for accomodating a receiver buffer to prevent data overflow |
WO2014115250A1 (ja) * | 2013-01-22 | 2014-07-31 | 富士通株式会社 | データ転送装置、データ転送方法およびデータ転送プログラム |
Also Published As
Publication number | Publication date |
---|---|
KR20060045868A (ko) | 2006-05-17 |
KR100715710B1 (ko) | 2007-05-08 |
EP1598746A2 (en) | 2005-11-23 |
CN1700673A (zh) | 2005-11-23 |
EP1598746A3 (en) | 2007-10-24 |
US20050259651A1 (en) | 2005-11-24 |
CN100417134C (zh) | 2008-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005332250A (ja) | データ処理装置およびフロー制御方法 | |
US20090113082A1 (en) | Device, System, and Method of Speculative Packet Transmission | |
RU2559727C2 (ru) | Способ и устройство для обеспечения потоков на основе идентификатора через шину pci express | |
CN101681325B (zh) | 修改PCI Express封包摘要的设备、系统和方法 | |
US7251704B2 (en) | Store and forward switch device, system and method | |
US8166227B2 (en) | Apparatus for processing peripheral component interconnect express protocol | |
US9836424B2 (en) | General input/output architecture, protocol and related methods to implement flow control | |
CN103490997B (zh) | 为分组报头提供前缀 | |
US7424566B2 (en) | Method, system, and apparatus for dynamic buffer space allocation | |
US7869356B2 (en) | Dynamic buffer pool in PCIExpress switches | |
CN101876958B (zh) | 通用序列总线输入输出端口传送器及其传送方法 | |
US7698477B2 (en) | Method and apparatus for managing flow control in PCI express transaction layer | |
EP2568665B1 (en) | Methods and devices for transmitting scsi packets on a pcie bus | |
US20090003335A1 (en) | Device, System and Method of Fragmentation of PCI Express Packets | |
US10853289B2 (en) | System, apparatus and method for hardware-based bi-directional communication via reliable high performance half-duplex link | |
JP2004021613A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
US7583600B1 (en) | Schedule prediction for data link layer packets | |
US20050089033A1 (en) | Method, system, and program for constructing a packet | |
RU2461871C2 (ru) | Способ обеспечения различной длины пакетов в протоколе передачи данных | |
US7366802B2 (en) | Method in a frame based system for reserving a plurality of buffers based on a selected communication protocol | |
US8032675B2 (en) | Dynamic memory buffer allocation method and system | |
CN115437983A (zh) | 高速外围组件互连(PCIe)接口装置及其操作方法 | |
WO2000062179A1 (en) | Asynchronous data transmission with scattering page tables | |
TWI246651B (en) | An enhanced general input/output architecture and related methods for establishing virtual channels therein | |
KR20010103969A (ko) | 비동기 전송 모드 통신에서 범용 직렬 버스 인터페이스를이용한 데이터 송수신 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060606 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080807 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080819 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090310 |