JP2004523853A - ネットワークプロセッサにおいてメモリ帯域幅を効率的に共用する装置および方法 - Google Patents
ネットワークプロセッサにおいてメモリ帯域幅を効率的に共用する装置および方法 Download PDFInfo
- Publication number
- JP2004523853A JP2004523853A JP2002580183A JP2002580183A JP2004523853A JP 2004523853 A JP2004523853 A JP 2004523853A JP 2002580183 A JP2002580183 A JP 2002580183A JP 2002580183 A JP2002580183 A JP 2002580183A JP 2004523853 A JP2004523853 A JP 2004523853A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- request
- controller
- slice
- epc
- 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.)
- Granted
Links
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
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- 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
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- 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
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Bus Control (AREA)
Abstract
【解決手段】ネットワークプロセッサ(NP)は、最大限のメモリ利用を可能にするコントローラを含む。コントローラは、NP内の要求側からのメモリアクセス要求を監視すると共に優先順位の高い要求側が要求するすべてのメモリ帯域幅を優先順位の高い要求側に授与するメモリ調停機構を含む。優先順位の高い要求側が要求するメモリ帯域幅がメモリ帯域幅全体よりも少ないものである場合に、要求された帯域幅とメモリ帯域幅全体との差は、より優先順位の低い要求側に割り当てられる。そうすることで、すべてのメモリ・アクセスが、メモリ帯域幅全体を利用するようになる。
Description
【0001】
本発明は、全般的には、コンピュータおよびネットワークプロセッサに関し、より詳細には、前記コンピュータおよびネットワークプロセッサと共に使用するメモリシステムに関する。
【背景技術】
【0002】
通信ネットワーク内部で情報を転送するために、スイッチ、ブリッジ、コンピュータ、ネットワークプロセッサなどのネットワーク装置を使用することは、従来技術において公知である。こうした装置に対する要件の1つは、こうした装置が、しばしば帯域幅と呼ばれる大量のデータを運ぶ必要があることである。
【0003】
高帯域幅の要件を満たすために、装置にはクリアチャネルが設けられる。クリアチャネルとは、いくつかのより低い帯域幅のデータフローを単一の物理リンクで搬送するチャネル化されたリンクとは対照的な、大量のデータを単一のフローで伝送する高帯域幅を有するチャネルである。
【0004】
クリアチャネルに十分なデータ供給を提供するためには、高速の記憶装置サブシステムが必要である。スタティック・ランダム・アクセス・メモリ(SRAM)など高速記憶装置システムは、高帯域幅の要件を満たすのに使用することができる。しかし、こうしたメモリは高価であり、結果としてそれを使用する装置の価格が高くなる。このような高価格のメモリを、コンピュータおよびネットワークプロセッサの記憶装置システムの構築に使用すると、価格の問題はさらに悪化する。
【0005】
従来技術の高速メモリは、高価であるだけでなく低密度である。それは、限定された量のデータしか格納することができない。しかし、特にインターネットに関連するほとんどのアプリケーションその他の技術は、高密度のメモリまたは記憶装置システムを必要とする。その結果、従来技術の高速メモリでも、多くのアプリケーションには適するものではない。
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明の目的は、ネットワークプロセッサにおいてメモリ帯域幅を効率的に共用する装置および方法を提供することである。
【課題を解決するための手段】
【0007】
したがって、本発明は、メモリ調停機構内で複数のメモリアクセス要求を受け取る動作であって、そのメモリアクセス要求の少なくとも1つが優先順位の指定(優先順位の指定は、要求と共に届いても、または要求が届いた後に割り当ててもよい)と関連づけられている動作と、要求されたメモリ帯域幅の大きさを決定するために、特定の優先順位指定を有するメモリアクセス要求を前記メモリ調停機構によって分析する動作と、特定の優先順位指定を有するメモリ要求がメモリ帯域幅全体を要求するのではない場合には、少なくとも1つの他の要求とメモリアクセスを共有する動作とを含む、メモリの利用を最適化する方法を提供する。
【0008】
好適には、低価格かつ高密度の高速メモリを提供する。本文書では、高速メモリとは、好適には、大量のデータを比較的短い時間で提供する、広い帯域幅(Bandwidth,BW)を有する。
【0009】
好適には、特定の優先順位指定を有するメモリアクセス要求は、メモリ帯域幅全体を必要とする場合に、メモリ帯域幅全体の利用を許可される。一実施形態では、この特定の優先順位指定は最も高いものである。
【0010】
好適には、少なくとも1つのスライス内に配列された複数のバッファを有するメモリが提供され、少なくとも1つのスライス内の各バッファは複数のクワッドワード(Quadword)に分割され、メモリ要求は、複数の要求側から少なくとも1つのスライスへのアクセスを求める。
【0011】
本発明は、好適には、メモリシステムを使用する資源による、前記メモリシステムの利用を最適化する方法を含む。具体的には、複数の要求側からの読出しまたは書込み要求が、好適には、各メモリアクセス・サイクルごとに、最大許容情報単位を読み出しまたは書き込みできるように、束ねられる。そうすることによって、情報スループットが増加し、その結果、コンピュータのネットワークプロセッサまたは類似の装置の記憶装置の構築に使用される比較的低価格で、高密度で、比較的アクセス時間の遅いメモリ(DDR DRAMなど)の使用が可能になる。
【0012】
好適な実施形態によれば、要求側(すなわち、メモリアクセス要求の要求側)としては、ネットワークプロセッサまたは類似の装置内にある、受信装置コントローラ、組込みプロセッサ複合体(EPC)コントローラ、送信装置コントローラが含まれる。メモリシステムは、好適には、DDR DRAMモジュールから形成されると共に「スライス」と呼ばれる群として配列される複数のバッファを含む。各DDR DRAMは、好適には、複数のバッファ(1〜N)に分割され、DRAMコントローラによって制御される。各バッファは、好適には、「クワッドワード」と呼ばれるセクションに分割される。一実施形態では、バッファは、クワッドワードA、B、C、Dに分割される。バッファおよびバッファ内のクワッドワードはいずれもアドレス指定可能である。
【0013】
好適な実施形態によれば、メモリ調停機構は、受信装置コントローラ、EPCコントローラ、送信装置コントローラからの要求を監視する。メモリ調停機構は、好適には、その要求を使用して、メモリの1スライスごとにメモリ・アクセス・ベクトルを形成する。読出し要求の場合、メモリアクセスの優先権は、好適には、送信装置コントローラに与えられる。送信装置コントローラからの要求がメモリ帯域幅全体を必要とする場合に、メモリ・アクセス・ベクトルは、好適には、送信装置コントローラの要求にのみ基づく。メモリ帯域幅全体より少ないものを送信装置コントローラが必要とする場合に、EPCからの保留状態の読出し要求は、好適には、送信装置コントローラからの要求とマージされて、1スライスごとにメモリ・アクセス・ベクトルを形成する。DRAMコントローラは、メモリ・アクセス・ベクトルに応答して、好適には、(バッファ1つ分のデータが要求された場合は)送信装置コントローラ用のデータを含むか、または(送信装置がバッファ全体よりも少ないものを要求した場合は)送信装置コントローラおよびEPC用のデータを含む、バッファ1つ分の情報を出力する。本質的には、送信装置コントローラがバッファ1つ分より少ないデータを要求した結果生じるいかなる超過容量も、好適には、EPCコントローラに割り振られる。
【0014】
書込み要求の好適な実施形態によれば、調停機構は、受信装置コントローラに優先権を与える。同様の方法で、受信装置コントローラがバッファ・ペイロード全体よりも少ないものを有するどの書込み要求も、好適には、EPCからのデータで増補される。
【0015】
その結果、バッファ1つ分のデータが、好適には、各メモリアクセスにおいて、常に書き込まれ、または読み出される。
【0016】
別の態様によれば、本発明は、情報を格納するメモリシステムと、前記メモリシステムに動作可能に結合された、アクセスを認可するメモリ調停機構とを含むネットワークプロセッサを提供し、前記メモリ調停機構は、メモリアクセス要求を受け取る1つまたは複数の要求レジスタと、要求側の優先順位指定を格納する少なくとも1つの優先順位レジスタと、要求レジスタおよび優先順位レジスタに動作可能に結合されたコントローラとを含み、前記コントローラは、要求および要求の優先順位を監視する回路を含み、最も優先順位の高い要求が帯域幅全体よりも少ないものを求める場合に、最も優先順位の高い要求がメモリ帯域幅を少なくとも1つの他のメモリ要求と共用することを可能にする、メモリ・アクセス・ベクトルを生成する。
【0017】
一実施形態によれば、a)少なくとも1つのスライス内に配列された複数のバッファを有するメモリを提供する動作であって、前記少なくとも1つのスライス内の各バッファが複数のクワッドワードに分割されている動作と、b)メモリ調停機構内で、複数の要求側からの少なくとも1つのスライスへのアクセスを求める複数のメモリ要求を受け取る動作と、c)前記メモリ調停機構によって、要求のそれぞれに所定の優先順位を割り当てる動作と、d)前記メモリ調停機構によって、最も優先順位の高い要求を分析し、前記最も優先順位の高い要求に必要なメモリ帯域幅のパーセンテージを検出する動作と、e)最も優先順位の高い要求がメモリ帯域幅全体を利用するのではない場合に、メモリアクセスをより優先順位の低い要求と共有する動作とを含む、メモリの利用を最適化する方法が提供される。
【0018】
一実施形態によれば、a)少なくとも1つのスライス内に配列された複数のバッファを有するメモリを提供する動作であって、前記少なくとも1つのスライス内の各バッファが複数のクワッドワードに分割されている動作と、b)メモリ調停機構内で、複数の要求側からの少なくとも1つのスライスへのアクセスを求める複数のメモリ要求を受け取る動作と、c)前記メモリ調停機構によって、要求のそれぞれに所定の優先順位を割り当てる動作と、d)前記メモリ調停機構によって、最も優先順位の高い要求を分析し、前記最も優先順位の高い要求に必要なメモリ帯域幅のパーセンテージを検出する動作と、e)最も優先順位の高い要求がメモリ帯域幅全体を必要とする場合に、前記最も優先順位の高い要求にメモリ帯域幅全体の利用を許可する動作、または、前記最も優先順位の高い要求がメモリ帯域幅全体よりも少ないものを要求する場合に、より優先順位の低い要求とメモリ帯域幅を共用する動作とを含む、メモリの利用を最適化する方法が提供される。
【0019】
好適には、複数の要求側には、ネットワークプロセッサ内部で動作可能に結合されている、受信装置コントローラ、送信装置コントローラ、組込みプロセッサ複合体(Embedded Processor Complex、EPC)コントローラが含まれる。一実施形態では、送信装置コントローラが最も高い優先順位を有する。受信装置コントローラが、その次に高い優先順位を有する。
【0020】
一実施形態では、EPCは、送信装置コントローラまたは受信装置コントローラとメモリ帯域幅を共用する。要求には、読出し要求および書込み要求がある。一実施形態では、読出し要求は、送信装置コントローラによって生成される。一実施形態では、書込み要求は、受信装置コントローラによって提供される。読出しおよび書込み要求は、EPCコントローラが提供してもよい。
【0021】
一実施形態によれば、メモリ調停機構内に複数のメモリアクセス要求を受け取る動作と、前記メモリ調停機構内に少なくとも1つのメモリアクセス要求の優先順位指定を提供する動作と、要求されたメモリ帯域幅の大きさを決定するために、優先順位指定を有するメモリアクセス要求を前記メモリ調停機構によって分析する動作と、前記優先順位指定を有するメモリ要求に、優先順位指定を有する前記メモリ要求がメモリ帯域幅全体を要求する場合に、メモリ帯域幅全体の利用を許可し、また、優先順位指定を有する前記メモリアクセス要求がメモリ帯域幅全体よりも少ないものを要求する場合には、他の要求とのメモリ帯域幅の共用を許可する動作とを含む、メモリの利用を最適化する方法が提供される。
【0022】
好適には、優先順位指定は最も高いものである。一実施形態では、共用は、最も優先順位の高い要求のメモリ帯域幅と、より優先順位の低い要求のメモリ帯域幅との組合せをさらに含む。
【0023】
一実施形態によれば、情報を格納するメモリシステムと、前記メモリシステムに動作可能に結合された、アクセスを認可するメモリ調停機構とを含むネットワークプロセッサが提供され、前記メモリ調停機構は、メモリアクセス要求を受け取る1つまたは複数の要求レジスタと、要求側の優先順位指定を格納する少なくとも1つの優先順位レジスタと、要求レジスタおよび優先順位レジスタに動作可能に結合された第1のコントローラとを含み、前記コントローラは、要求および要求の優先順位を監視する回路を含み、最も優先順位の高い要求が求める場合に、メモリ帯域幅全体の利用を可能にするメモリ・アクセス・ベクトルを生成し、または最も優先順位の高い要求およびより優先順位の低い要求がメモリ帯域幅全体を共用するメモリアクセス要求を生成する。
【0024】
好適には、メモリシステムは、少なくとも1つのスライス内に配列された複数のバッファを含み、各バッファはクワッドワードに分割される。好適には、各スライスは、少なくとも1つのバッファコントローラに動作可能に結合される。好適には、各バッファは64バイトであり、それぞれ16バイトの4つのクワッドワードに分割される。各スライスは、DDR DRAMから製作することができる。
【0025】
好適には、メモリ調停機構に動作可能に結合された受信装置コントローラがさらに提供される。前記メモリ調停機構に動作可能に結合された送信装置コントローラがあってもよい。メモリ調停機構に動作可能に結合された組込みプロセッサ複合体、すなわちEPCがあってもよい。好適には、送信装置コントローラを含む実施形態では、それに動作可能に結合されたスケジューラがある。
【0026】
一実施形態では、第1のコントローラが、バッファ・メモリ・アクセス・ベクトルを構築するために、以下のステップ、すなわち、a)(各DRAMコントローラによって指示される)リフレッシュ・サイクルに合わせてスケジュールされたスライスを除外するステップと、b)送信装置コントローラのすべてのR(読出し)要求用にスライスを割り当てるステップと、c)対応するEPC待ち行列[スライス;クワッドワード]からのRアクセスを補完するステップと、d)全域がW(書込み)除外されたスライス(たとえば、スライスは、受信装置からのすべてのスライス除外規則によって除外される)について、EPCにスライスを割り当てるステップと、e)最後に割り当てられたスライス(直前のウィンドウにおいて受信装置コントローラに割り当てられたスライス)から始まる非除外スライス間のスライスを、W要求にRR(ラウンドロビン)方式で割り当てるステップと、f)対応するEPC待ち行列[スライス;クワッドワード]からのWアクセスを補完するステップと、g)重みによって表される優先順位に従って、EPC要求にスライスを割り当てるステップとを選択的に実施する。
【0027】
一実施形態によれば、1より大きいN個のセクタに分割されたメモリと、前記メモリに動作可能に結合されたメモリ調停機構コントローラとを備える装置であって、前記メモリ調停機構コントローラが、少なくとも2つのメモリアクセス要求を受け取り、前記要求にメモリアクセスの優先順位を割り当て、前記要求のうちの選択された1つを分析して、前記メモリ要求のうちの前記選択された1つが特定のメモリ・アクセス・サイクルに対してメモリ帯域幅全体を使用するかどうかを判定し、メモリ帯域幅全体が要求された場合に前記要求のうちの選択された1つにメモリ帯域幅全体を割り当てるメモリ・アクセス・ベクトルを生成し、メモリ帯域幅全体が使用されるのではない場合にメモリ帯域幅を別の要求と共用する装置が提供される。
【0028】
一実施形態によれば、a)第1の要求側からの読出し要求をメモリ調停機構内で受け取る動作であって、前記読出し要求が、メモリのうちのデータが読み出される部分を識別する情報を含む動作と、b)返されるデータが、使用可能なメモリ帯域幅の全部を使用したかどうかを判定する動作と、c)第1の要求側によってメモリ帯域幅全体が使用されるのではない場合に、第1の要求側のために返されたデータを、第2の要求側のためのデータで補完する動作とを含む、メモリにアクセスする方法が提供される。
【0029】
一実施形態によれば、a)メモリへのアクセスを求める第1の要求側からの要求を、調停機構内で受け取る動作と、b)前記要求の結果、メモリ帯域幅のどの部分が使用されるのかを判定する動作と、c)ステップb)における判定がメモリ帯域幅の完全な使用を指示する場合に、メモリ帯域幅全体の使用を第1の要求側に割り当てる動作と、d)ステップb)における判定で、第1の要求側の帯域幅使用がメモリ帯域幅全体よりも少ないと指示される場合に、第1の要求側の帯域幅使用を第2の要求側が要求する帯域幅使用で補完する動作とを含む方法が提供される。
【0030】
要求には、読み出しと書込みがあり得る。好適には、第2の要求側はEPC(組込みプロセッサ複合体)が含まれる。好適には、第1の要求側には受信装置コントローラが含まれる。
【0031】
上記のものは、コンピュータプログラムとして実装できることを理解されたい。
【0032】
次に、本発明の好適な実施形態を、例示の目的でのみ、以下の図面を参照して説明することとする。
【発明を実施するための最良の形態】
【0033】
図1は、以下に示す本発明の好適な実施形態が実装されるネットワークプロセッサ(NP)のブロック図を示す。ネットワークプロセッサは、入口(Ingress)側10および出口(Egress)側12を含む。入口側10および出口側12は、仮想軸AAに関して対称である。入口側10にアクセスするデータ・トラフィックは、フレックスバス4(Flexbus4)またはWRAP伝送線から入り、スイッチ・インタフェース10’から出る。同様に、出口側12に入るデータは、スイッチ・インタフェース12’から入り、フレックスバス4’で示す導線から出る。フレックスバス4、4’、およびスイッチ・インタフェース(Int)10’、12’は、それぞれ10Gbpsおよび14Gbpsを配信するクリアチャネルとみなすことができる。スイッチ・インタフェース10’は、IBM(R)によって開発、販売されているPrizmaなどのスイッチ・アセンブリ(図示せず)によって、スイッチ・インタフェース12’に結合される。
【0034】
図1をさらに参照すると、入口側10は、データ・フロー・チップ14、EPCチップ16、データ・バッファ18、スケジューラ・チップ20を含む。出口側12は、データ・フロー・チップ14’、EPCチップ16’、データ・バッファ18’、スケジューラ・チップ20’を含む。WRAP伝送線は、データ・フロー・チップ14’をデータ・フロー・チップ14に相互接続する。上記の構成要素は、図に示すように相互接続される。図中の同様の名前の構成要素は実質的にも同様であり、一方の説明が他方の説明に当てはまることに留意されたい。例として、EPCチップ16とEPCチップ16’は実質的に同一のものである。同様に、同様の名前をもつ他の構成要素も、同一のものである。
【0035】
図1に示す構成は、双方向の機能を提供する。チップセットを介するパケットの移動を用いて、その機能を説明する。Sonet/SDHストリームからフレーマ装置(図示せず)によって抽出されたHDLCフレームは、フレックスバス4(入口側)で受け取られ、データ・フロー・チップ14へ転送される。フレームからのデータは、データ・バッファ18に書き込まれる。データ・バッファ18内に完全なフレームが書き込まれると、フレーム・コンテキスト(FCB)が、EPC(組込みプロセッサ複合体)待ち行列(図2のG−FIFO)の1つに登録される。EPCチップ16は、フレーム・ポインタを読み取り、そのピコプロセッサの1つにおいてそれぞれのフレームを処理する。フレーム処理の間、EPCは、フレームの適切な部分(たとえば、L2およびL3ヘッダ)を、データ・バッファから読み出すための、またはそこへ書き込むための要求を発行することができる。フレーム処理が完了した後、EPCは、フレーム・コンテキストをデータ・フロー・チップに渡し、このデータ・フロー・チップは、スケジューラ・チップ20の待ち行列作成構造にフレームを登録する。スケジューラ・チップ20内のスケジューラは、伝送に適した待ち行列からフレームを選択する。このことは、対応するフレーム・ポインタがデータ・フロー・チップに渡されることを意味する。伝送されるフレームは、データ・バッファから読み出され、PRIZMAセルの形でスイッチ・インタフェース10’を介して伝送される。PRIZMAセルは、可変サイズのフレームからなるセグメントを搬送する64バイトのセル、すなわち完全な非同期転送モード(ATM)セルである。セルは、スイッチ・インタフェース10’を介してクロスポイント・スイッチ(図示せず)へ送られる。好適な実施形態では、クロスポイント・スイッチは、インターナショナル・ビジネス・マシーンズ・コーポレーションによって製造、販売されている、PRIZMAという名称の製品である。
【0036】
図1をさらに参照すると、出口側の出口方向において、PRIZMAセルをスイッチ・インタフェース12’で受け取り、データ・バッファ18’へ転送する。完全なフレームを受け取った後、フレーム・ポインタが処理のためにEPC待ち行列に登録される。出口EPC16’は、データ・フロー・チップからフレーム・コンテキストを取り出し、EPCピコプロセッサ(図示せず)内で稼動するピココード中のフレーム・ヘッダを処理する。処理結果はフレーム・コンテキストであり、データ・フロー・チップ14’に渡され、スケジューラ20’の適切な待ち行列に登録される。スケジューラ・チップ20’内のスケジューラは、伝送するフレームを選択し、次いで、このフレームがデータ・バッファ18’から読み出され、データ・フロー・チップ14’のフレックスバス4’で示すライン・インタフェース上を伝送される。話を簡潔にするために、好適な実施形態において、本発明にとって重要なネットワークプロセッサの部分のみをさらに述べる。
【0037】
図2は、本発明の好適な実施形態の教示による、データ・フロー・チップおよびメモリシステム(Sys)21のブロック図を示す。データ・フロー・チップへ入るデータは、Data_inで示すバス上で提供され、チップから出るデータは、Data_outで示すバス上を伝送される。先に述べたように、Data_inおよびData_outは、大量のデータを伝送するクリアチャネルである。メモリシステム21は、スライス0〜スライスNと呼ばれる複数のDDR DRAMから構成される。図2に示す実施形態では、N=5である。後で説明するように、各スライスは複数のバッファから構成され、個々のバス0〜5によって、データ・フロー・チップ内の別々のDRAMコントローラに接続される。DRAMコントローラは、従来のDRAMコントローラであり、書込み、読出し、リフレッシュ、および他の機能を、サービスの対象となるスライスに提供する。DRAMコントローラは当該技術分野において公知であるので、これ以上は説明なされない。
【0038】
図2をさらに参照すると、データ・フロー・チップ内の機能ブロックは、受信装置コントローラ22、メモリ調停機構24、FCB調停機構26、BCB調停機構28、EPCコントローラ30、バッファ受諾および課金ブロック32、スケジューラ・インタフェース・コントローラ34、および送信装置コントローラ36を含む。QDR SRAM38は、メモリシステム21内にあるバッファのリストを格納する。QDR SRAM40は、ターゲット・ブレード(T/B)待ち行列およびターゲットポート(TP)待ち行列中のフレームに関連する情報を格納する。メモリ調停機構24は、データ・フロー・チップをメモリシステム21にインタフェースする。この目的のために、メモリ調停機構は、送信装置、受信装置、組込みプロセッサ複合体(EPC)コントローラ22、36、38からの読出し(R)/書込み(W)要求を集め、個々のデータ格納メモリ・スライスへのアクセスをスケジュールする。後で説明するように、各メモリ・スライスは、各バッファが64バイトである複数のバッファを含む。他のサイズのデータ帯域幅も設計できることに留意されたい。次いで、フレーム・データは、メモリ帯域幅を最大限に使用するために、メモリの別々のスライス上に広がる別々のバッファに書き込まれる。メモリからデータを読み出す際には、データは64バイト分取り出される。別の言い方をすれば、メモリに入る、またはそこから出る帯域幅は64バイトである。他のサイズのデータ帯域幅も設計できることに留意されたい。好適な実施形態によるメモリ調停機構により、メモリへのいかなるアクセス(読出しまたは書込み)も、64バイトのペイロードを有することになる。要求側からの要求が64バイト未満である場合、ペイロードは、別の要求側からのデータによって増補される。
【0039】
図2をさらに参照すると、受信装置コントローラ22は、Data_inで示す入力バスからデータを受け取り、メモリシステム21内の個々のバッファに受信データを書き込むために書込み要求を発行する。同様に、送信装置コントローラ36は、選択したフレームをDATAOUT上で送信するために、読出し要求を発行する。EPCコントローラ30は、EPCからの、またはそこへの様々なメッセージを打ち切り、データ記憶部(メモリシステム21)に読出し/書込み要求を発行する。EPCコントローラはまた、処理待機フレームのトラック(G−FIFO)を保持する。バッファ受諾および課金ブロック32は、各フレームベースで待ち行列への登録/破棄を決定する責任を負う。このブロック32はまた、TB/TPベースで待ち行列の充填レベルを保持し、スイッチ・インタフェース上のスイッチ・ファブリックにこの情報を提供する。BCBおよびFCBメモリ調停機構は、FCBまたはBCBの連鎖/連鎖解除、FCBまたはBCBの専有/解放など、リンク・リスト操作のための様々なアクセスのスケジューリングを行う。
【0040】
図3は、本発明の好適な実施形態による、メモリ調停機構の機能ブロック図を示す。メモリ調停機構の機能は、メモリシステム21へのアクセスを提供することである。メモリ調停機構は、受信装置コントローラ22、送信装置/コントローラ36、およびEPCコントローラ30から要求を受諾する。要求には優先順位がつけられ、その順位は、送信装置コントローラ36が最も高く、受信装置コントローラ22がその次に高く、EPCコントローラ30が最も低い。もちろん、異なる順序または優先順位を選択することもできる。メモリへのアクセスの許可を与える際、調停機構は、各メモリアクセスについて、メモリが許可する最大限のデータ帯域幅が利用されるようにする。したがって、メモリ要求がデータ読出しである場合、その要求は送信装置コントローラ36またはEPCコントローラ30あるいはその両方からの読出し要求である。メモリ調停機構は、送信装置コントローラからの要求を分析する。要求がメモリ帯域幅全体を必要とする場合、調停機構は、スライス部分ごとに1つのコマンドを有する、また、バンク部分ごとに1つのアドレスを有するアクセス・ベクトルを生成する。アクセス・ベクトルは、適切なメモリ・コントローラに送付され、データがメモリから抽出される。
【0041】
本明細書で説明したように、メモリ中の各バッファは64バイトを有し、4つのクワッドワードA、B、C、Dに分割され、各クワッドワードはそれぞれ16バイトを有する。送信装置コントローラが、いずれかのメモリアクセスにおいて4未満のクワッドワードを必要とする場合、未使用の分のクワッドワードは、EPCコントローラに与えられる。書込みの要求は、受信コントローラおよびEPCコントローラによって発行される。読出し要求と同様に、すべての書込み要求は、4クワッドワードの情報がメモリ・コントローラに送付されることを必要とする。受信装置コントローラが、4未満のクワッドワードを書き込む場合、未使用のクワッドワードは、EPCコントローラに割り当てられる。したがって、メモリへのすべてのアクセスが、4クワッドワード、64バイトのデータの書込みまたは読出しを行う。そうすることによって、無駄なサイクルがなく、最大限のメモリ帯域幅が利用される。
【0042】
図3をさらに参照すると、メモリ調停機構は、メモリシステム21と、送信装置コントローラ22と、EPCコントローラ30と、送信装置コントローラ36とを相互接続するバス構造40を含む。受信装置コントローラ22は、メモリ調停機構をスイッチまたはライン・インタフェースにインタフェースする。EPCコントローラ・インタフェースは、調停機構をEPCチップ(図1)にインタフェースする。送信装置コントローラ36は、メモリ調停機構をData_outバス(図2)にインタフェースする。調停機構は、メモリ調停機構コントローラ42を含み、これは、図示したそれぞれの要求を受け取ってアクセス・ベクトルを生成し、このベクトルは、メモリシステム内の個々のスライスにアクセスするために、それぞれのコントローラに供給される。メモリ調停機構による調停は、11個のサイクル・ウィンドウ(1サイクル=6ns)で行われる。アクセス・ウィンドウの開始時点において、メモリ調停機構は、次のウィンドウでスケジュールすべき以下の入力(要求)を受け取る。
【0043】
送信装置コントローラ要求は、読み込むバッファのBCBアドレスによって表される。RFフラグは、バッファを解放できるかどうかを示し、クワッドワード・マスクは、各BCBAアドレスを補完する。このバッファ内部のどのクワッドワードが有効に読み出されるかを示すクワッドワード・マスクにより、メモリ調停機構が未使用のクワッドワードへのアクセスをEPCからのアクセスで補完することが可能になる。本発明の好適な実施形態では、0、1、2、または3個の要求を、1つのメモリアクセス・ウィンドウにおいて送信装置コントローラから出すことができる。それぞれの要求を、送信装置コントローラ36をメモリ調停機構コントローラ42と相互接続する矢印で示す。矢印の向きは、要求が流れる方向を示す。
【0044】
受信装置コントローラ要求は、スライス除外マスクおよび2つのクワッドワード・マスクによって表される。2つのクワッドワード・マスクは、間接的に、1つの要求について好適にはいくつのバッファを配置する必要があるか(たとえば、クワッドワード・マスクの1つが「0000」であれば、1つのバッファだけを割り振るという意味である)を示し、また、異なるバッファ内でどのメモリ・バンク(クワッドワード)を使用すべきかを示す。先に述べたように、受信装置22は、メモリにアクセスするための2番目に高い優先順位を有する。受信装置コントローラに許される要求は、受信装置コントローラから出てメモリ調停機構コントローラ42に至る矢印で示す。
【0045】
EPCコントローラ要求は、1スライスごと、1アクションごと、1クワッドワードごとの待ち行列によって表される。メモリ調停機構は、個々のクワッドワード要求の重みに従って、残っているスライスをすべて割り当てなければならない。この重みは、6ビットの値で表されるクワッドワード要求のエージに比例する。さらに、メモリ調停機構は、EPC要求待ち行列作成システムから、対応するクワッドワードのアクセス要求を読み出すことによって、送信装置および受信装置のアクセスを補完することができる。本発明の好適な実施形態では、1つのメモリアクセス・ウィンドウにおいてEPCに与えられるクワッドワード・アクセスの最大数は、8つの読出しおよび8つの書込みクワッドワードに限定される。片方向矢印は、EPCコントローラおよびメモリ調停機構コントローラ42から渡される情報の流れを示す。
【0046】
図3をさらに参照すると、メモリ調停機構コントローラ42は、それぞれの要求側(受信装置コントローラ22、送信コントローラ36、EPCコントローラ30)から要求を受け取り、アクセス・ベクトルを生成する。このベクトルは、適切なスライス・コントローラ(Ctrl)へ送付され、コントローラは、選択したスライス中のバッファから情報を読み出し、またはそこへ情報を書き込む。受信装置コントローラにも送信装置コントローラにも利用されない余分の帯域幅は、EPCコントローラに割り当てられる。その結果、メモリへのすべてのアクセスがメモリ帯域幅全体を利用する。要求側からの入力に基づいて、メモリ調停機構コントローラ42は、次のウィンドウのためのバッファ・メモリアクセス・ベクトルを構築するために、以下のスライス選択アルゴリズムを実施する。
・(各DRAMコントローラによって指示される)リフレッシュ・サイクルに合わせてスケジュールされたスライスを除外する
・送信装置コントローラのすべてのR(読出し)要求用にスライスを割り当てる
・対応するEPC待ち行列(スライス:クワッドワード)からのRアクセスを補完する
・全域がW(書込み)除外されたスライス(受信装置からのすべてのスライス除外規則によって除外されたスライス)について、EPCにスライスを割り当てる
・最後に割り当てられたスライス(直前のウィンドウにおいて受信装置コントローラに割り当てられたスライス)から始まる非除外スライス間のスライスを、W要求にRR(ラウンドロビン)方式で割り当てる
・対応するEPC待ち行列(スライス:クワッドワード)からのEPCアクセスによって、Wアクセスを補完する
・重みによって表される優先順位に従って、EPC要求にスライスを割り当てる。
【0047】
スライス選択アルゴリズムは、論理ハードウェアで実装することができ、あるいは、ピコプロセッサ内で稼動するマイクロコードとしてコード化することもできる。上記選択アルゴリズムを実装するためのハードウェア論理またはピココードのどちらを選択するかは、設計上の好みであり、上に挙げたアルゴリズムが与えられていれば、当業者の技量の範囲内である。
【0048】
ここで図7に移ると、メモリ調停機構の代替実施形態を示してある。代替のメモリ調停機構は、要求レジスタA、B、Cと、優先順位テーブル44とに接続されたメモリ調停機構・コントローラ(CTRL)42を含む。要求レジスタは、それぞれの要求側からの要求を格納する。要求レジスタAは、送信装置(XMIT)コントローラからの要求を格納し、要求レジスタBは、受信装置(RECV)コントローラからの要求を格納し、レジスタCは、EPCコントローラからの要求を格納する。優先順位テーブル44は、要求側のそれぞれに対する優先順位指定を格納する。すなわち、最も高い優先順位を有する送信装置コントローラは1であり、受信装置コントローラは次に高い優先順位2であり、最も低い優先順位を有するEPCコントローラは3である。動作において、メモリ調停機構コントローラは、上記の選択アルゴリズムに従って設計され、レジスタ内の情報を優先順位レベルと併せて使用してメモリ・ベクトルを生成する。
【0049】
図4、5および6は、好適な実施形態に従って本発明をさらに説明する例を示す。図に、データがメモリから抽出または読み出される際のメモリ帯域幅全体を利用する特徴を示す。メモリ内のデータは、以前の書込みサイクルにおいて書き込まれている。
【0050】
図4は、送信装置コントローラが帯域幅全体を使用する、読み出し要求を示す機能ブロック図である。上述したように、送信装置コントローラは、メモリからのデータ読出しに関して、最も高い優先順位を有する。図に、メモリ51、タイミング表示48、メモリ調停機構コントローラ42、および準備領域46を示す。メモリ51は、スライスと呼ばれる組として配列された複数のバッファを含む。図に、スライス0、1、2、3および4を示す。ただし、これを限定と解釈すべきではない。それより多くのまたは少ないスライスを使用することもできるからである。さらに、各スライス内には、(1、2および3で示す)3つのバッファを示してある。ただし、これは一例であって、限定と解釈すべきではない。スライス内で使用するバッファの数は、設計者の選択によって決定される。したがって、スライス内のバッファの数はNであり、Nは設計者の選択によって決定する任意の数でよい。上述したように、バッファのそれぞれは64バイトであり、クワッドワードA、B、CおよびDと呼ばれるセクタに分割される。各クワッドワードはそれぞれ16バイトである。各スライスは、N個のバッファに分割されたDDR DRAMモジュールから製作される。バッファ1中に示す数字は、スライス1バッファ1がクワッドワード3、4、1および2を含むデータで充填されていることを意味する。同様に、スライス3、バッファ1は、クワッドワード8、5、6および7を含むデータで充填されている。各クワッドワードは、ダブル・ワード(16バイト)を格納する。他の細分性も選択できることに留意されたい。おそらく、このデータは、図1の受信コントローラ22で受け取られており、より早い時点でメモリ51にロードまたは書き込まれている。
【0051】
図4をさらに参照すると、48は、記憶装置から削除され再配列(循環)されたデータの転送タイミングのグラフィック表示である。このグラフィック表示は、クワッドワードA、B、CおよびD用のスペースを有する。メモリアクセスは、約66ナノ秒の11サイクルである。各メモリ・サイクルでは、異なるメモリ・スライス内の2つのバッファに同時にアクセスすることができる。メモリ調停機構42は、上で説明したので詳細については繰り返さない。メモリ調停機構は、送信コントローラおよびEPCからの要求を受け取り、要求された情報をメモリ51から抽出できるように要求を配列すると言うだけで十分であろう。
【0052】
図4をさらに参照すると、準備領域46は、送信装置コントローラ36(図2)の要求時に記憶装置から削除されるデータの管理に必要な資源を含む。準備領域46は、ポート制御ブロック(PCB)、TP0、TP1、TP2、TP3、TP4...TPNで示す一組のターゲットポート・バッファを含む。TP(ターゲットポート)バッファの数は、設計者が決定する。したがって、5と示しているのは限定と解釈すべきではない。閉じた矢印のラベルRRは、バッファを時計回り方向で充填またはサービスする、ラウンドロビン手順を示す。PCBは、準備領域内のバッファの一覧を含む。図に示す例では、64個のPCBがある。PCBはまた、メモリから抽出すべき次のスライスを含む。図を参照すると、スライス1および3が、削除されてターゲットポート・バッファにロードされるものである。このバッファ内の情報は、その後ポート0を介してdata_out線1(図2)上を移送される。各ターゲットポート・バッファはそれぞれ、128バイト(8クワッドワード)を含む。
【0053】
図4をさらに参照すると、動作の際、送信装置コントローラは、メモリのスライス1、バッファ1、およびスライス3、バッファ1内の情報をターゲットポート・バッファ0に読み出してロードするよう求める要求を、メモリ調停機構コントローラに出す。EPCの読出し要求もまたメモリ調停機構コントローラ42に提示される。送信装置コントローラによる要求がバッファ2つ分の伝送を必要とするので、このメモリ読出しサイクルの間は、EPCからの読出し動作の要求を調整する余地はない。要求はスライス1および3に対するものなので、両方の情報を同時に読み出し、ステージング領域48に再配列し、かつTPバッファ0に移送することができ、それが、その後ポート0を介して伝送されることに留意されたい。ステージング領域48からの情報は、正しい順序でTPバッファ0に読み出される。要するに、図4は、送信コントローラがメモリにアクセスし、帯域幅全部を利用する場合を示している。この場合、EPCは、このアクセス・ウィンドウの間はメモリへのアクセス権をもたない。送信装置コントローラは、バッファ2つ分(1つはスライス1から、1つはスライス3から)を受け取り、このデータをターゲットポート・バッファ0(TP0)内の待ち行列に登録している。
【0054】
書込み動作の場合も、図4の説明が同様に当てはまるが、書込みではデータは逆方向に流れる。したがって、書込み動作についてこれ以上は説明しない。
【0055】
図5は、メモリアクセスを最適化するために、同じスライスの異なるバッファがアクセスされ、異なるFIFOポート・バッファに分配される例を示す。図を見ればわかるように、メモリ51に格納されたデータのパターンを除けば、図5の構造は、上で説明した図4と実質的に同様である。したがって、図5で追加される特徴だけを詳しく述べる。メモリ51に関しては、情報は、スライス1、バッファ1、クワッドワードC、Dと、スライス1、バッファ2、クワッドワードA、B、C、Dと、スライス2、バッファ1、クワッドワードA、Dと、スライス2、バッファ3、クワッドワードB、C、Dとにロードされる。クワッドワードは、それぞれの数字で識別される。PCB内の情報は、スライス1、バッファ1にあるデータがTPバッファ0にロードされることを示す。同様に、スライス2、バッファ1にあるデータは、TP1にロードされる。メモリから当該のTPバッファに移動するデータに関して完全で正確な命令を与えるために、PCBが追加情報を必要とし得ることに留意されたい。説明をあまり複雑にしないために、追加情報については省略がされているが、本開示は当業者が追加情報を提供できるようにするのに十分である。
【0056】
送信装置の要求は、(TPのどれに関しても)データのメモリ帯域幅全体よりも少ないものなので、メモリ帯域幅のクワッドワード全体が各メモリ・サイクルで読み出され、TPに再分配される。
【0057】
図5をさらに参照すると、バッファ1については、スライスCおよびDだけが送信装置コントローラによってTPバッファ0用に要求され、AおよびBは未使用であり、バッファ2からのスライス4および1でTP2用に充填される。同様に、スライス2、バッファ1については、クワッドワードAおよびDだけが送信装置コントローラによってTPバッファ1用に使用される。したがって、未使用のクワッドワードBはスライス2、バッファ2からの「2」で示すデータで充填され、クワッドワードCはバッファ3からの「2」で示すデータで充填される。データは、ステージング領域およびそれぞれのターゲットポートFIFOバッファ内に、図に示す数字によって配列される。メモリ51からそれぞれのTPバッファへのデータの移動は、当該の片方向矢印で示される。例として、矢印52は、クワッドワード1、2、スライス1が順次TP0に配列されることを示し、矢印54は、クワッドワード1、2、スライス2が順次TP1に配置されることを示し、矢印56は、クワッドワード1、4、スライス2が順次TP2に配置されることを示し、矢印58は、クワッドワード2、バッファ2、スライス2がTP3に配置されることを示し、矢印60は、クワッドワード2、バッファ2がTP4に配置されることを示す。
【0058】
図5では、データが異なるTP FIFO(ターゲットポート先入れ先出し)バッファに分配されても、各メモリサイクルにおいて全部のメモリ帯域幅が使用されることに留意されたい。
【0059】
図6に移ると、送信装置コントローラからのメモリ要求がメモリ帯域幅全体よりも少ないものであり、かつスライス2の未使用のクワッドワードがクワッドワード「2」、バッファ3で充填されて矢印62を介してEPCにRR(ラウンドロビン)方式で送付される状況を示す概略図が示してある。図6のそれ以外の部分は、図5と実質的に同様で、図5の説明が当てはまり、参照によって組み込まれる。
【0060】
図8は、送信装置コントローラ、受信装置コントローラ、またはEPCにメモリアクセスを認可するのに使用するアルゴリズムの流れ図を示す。このアルゴリズムは、ステップA〜ステップGで示す処理ステップを含む。ステップAは、すべてのスライス(S=0〜N、Nはシステム内のスライスの総数。たとえば、本実施形態ではSは0〜5で示す)に関連するグローバルなステップである。要するに、ステップAは、情報の書込みまたは読出しに対するスライスの資格を判定する。スライスがリフレッシュを必要としないのであれば、割当てに対する資格がある。ステップBおよびCは、送信コントローラが実施する読出し動作に関連し、ステップD〜Gは、受信コントローラが実施する書込み動作に関連する。EPCは、書込みまたは読出しのいずれかを実施することができ、かつ読出しルーチンまたは書込みルーチンのいずれかと関連づけることができる。
【0061】
図8をさらに参照すると、ステップBは、要求されたスライス数Rをメモリから読み出すためのアクセスを、送信コントローラに認可する。Rは、1〜最大数であり得る。本出願に示す実施形態では、Rは3に設定される。もちろん、設計者の選択によっては、他の値のRを使用することもできる。ステップCは、読出し要求における未使用のクワッドワードをEPCに与えることによって、読出し動作を補完する。別の言い方をすると、読出し要求がすべてのクワッドワードを使用するのではない場合に、未使用のものをEPCに割り当てる。EPCは、メモリに至るためのいくつかの読出し要求を有することができる。したがって、アルゴリズムは、ラウンドロビン方式でEPCに読み出し要求を割り当てる。
【0062】
図8をさらに参照すると、書込み要求は、ステップD〜Gで制御され、受信コントローラまたはEPCによって実施される。ステップDで、受信コントローラは、同じフレームの隣接する部分は同じスライスに書き込むことができないという原理に基づいている。このことは、隣接する情報がメモリの様々なスライスに広がることを意味する。したがって、メモリ内の特定のスライスは、書込みに対する資格がない。ステップDで、受信装置コントローラは、これらの書き込むことができないスライスを識別する。ステップDで、1〜最大値であり得るX個だけ、スライスが識別される。ステップEで、アルゴリズムは、書込み用に要求された、ステップDで識別されたX個のスライスに配置された、ただしステップBでは配置されなかった資格のあるスライスを、EPCに与える。ステップEで、XはステップDで除外されたスライスを表し、RはステップBでの読出しに使用されるスライスを表す。
【0063】
ステップFで、アルゴリズムは、受信コントローラが要求したスライスをラウンドロビン方式で与える。受信コントローラは1より大きいN個のスライスを要求することができるので、ラウンドロビン割当てが必要である。受信コントローラが、ステップDで除外されたスライスを求めることはないことに留意されたい。さらに、受信コントローラに与えられたスライスは、読出し(R)用に与えられなかったものである。ステップGで、受信コントローラが書込みに使用しないクワッドワードがEPCに与えられる。EPCは複数の書込み要求を行うことができるので、ラウンドロビン方式でクワッドワードが与えられる。
【図面の簡単な説明】
【0064】
【図1】本発明の好適な実施形態が使用されるネットワークプロセッサを示すブロック図である。
【図2】本発明の好適な実施形態の教示によるネットワークプロセッサ要求側およびメモリシステムを示すブロック図である。
【図3】本発明の好適な実施形態の教示によるメモリ調停機構を示すブロック図である。
【図4】本発明の好適な実施形態による、送信装置コントローラが帯域幅全体を使用する読出し要求を示す機能ブロック図である。
【図5】本発明の好適な実施形態による、同じスライスからの異なるバッファがアクセスされ、異なるターゲットポート(TP)FIFOバッファに割り当てられる、読出し要求を示す機能ブロック図である。この図は、本発明の実施形態による、データが逆方向に流れる書込み要求を示すのにも使用することができる。
【図6】本発明の好適な実施形態による、異なるスライスからの異なるバッファがアクセスされ、1つのクワッドワードがEPCコントローラに割り振られる、読出し要求を示す機能ブロック図である。
【図7】メモリ調停機構の代替実施形態を示す図である。
【図8】本発明の実施形態による、書込みまたは読出し操作において使用されるアルゴリズムを示す流れ図である。
Claims (15)
- メモリ調停機構内で複数のメモリアクセス要求を受け取るステップであって、少なくとも1つの前記メモリアクセス要求が優先順位指定と関連づけられるステップと、
必要なメモリ帯域幅の大きさを決定するために、前記メモリ調停機構によって、特定の優先順位指定を有する前記メモリアクセス要求を分析するステップと、
前記特定の優先順位指定を有するメモリ要求がメモリ帯域幅全体を必要とするのではない場合に、メモリアクセスを少なくとも1つの他の要求と共有するステップと、
を含むメモリ利用を最適化する方法。 - 特定の優先順位指定を有する前記メモリ要求がメモリ帯域幅全体を必要とする場合に、メモリ帯域幅全体を利用するための、前記特定の優先順位を有する前記メモリアクセス要求を許可するステップをさらに含む、請求項1に記載の方法。
- 前記特定の優先順位指定が最も高いものである、請求項1または2に記載の方法。
- 少なくとも1つのスライス内に配列された複数のバッファを有するメモリを提供するステップであって、前記少なくとも1つのスライス内の各バッファが複数のクワッドワードに分割され、メモリ要求が複数の要求側からの少なくとも1つのスライスへのアクセスを求めているステップを含む、請求項1、2、3のいずれかに記載の方法。
- 複数の要求側がメモリアクセス要求を行い、前記複数の要求側としては、ネットワークプロセッサ内部で動作可能に結合された、受信装置コントローラ、送信装置コントローラ、組込みプロセッサ複合体(EPC)コントローラが含まれる、請求項1乃至4のいずれかに記載の方法。
- 送信装置コントローラが最も高い優先順位を有し、受信装置コントローラが次に高い優先順位を有する、請求項5に記載の方法。
- EPCコントローラが、メモリ帯域幅を送信装置コントローラまたは受信装置コントローラと共用する、請求項6に記載の方法。
- 要求には読出しおよび書込みがあり、少なくとも1つの読出し要求が送信装置コントローラによって生成され、少なくとも1つの書込み要求が受信装置コントローラによって提供される、請求項5乃至7のいずれかに記載の方法。
- 読出しおよび書込み要求がEPCコントローラによって提供される、請求項8に記載の方法。
- 情報を格納するメモリシステムと、前記メモリシステムに動作可能に結合された、アクセスを認可するメモリ調停機構とを含むネットワークプロセッサであって、
前記メモリ調停機構が、
メモリアクセス要求を受け取る1つまたは複数の要求レジスタと、
要求側に対する優先順位指定を格納する少なくとも1つの優先順位レジスタと、
前記要求レジスタおよび優先順位レジスタに動作可能に結合されたコントローラとを含み、
前記コントローラが、
メモリ・アクセス・ベクトルを生成するための、要求および要求の優先順位を監視する回路を含み、
前記メモリ・アクセス・ベクトルにおいて、最も優先順位の高い要求が帯域幅全体よりも少ないものを求める場合に、最も優先順位の高い要求がメモリ帯域幅を少なくとも1つの他のメモリ要求と共用することを可能とする、
ネットワークプロセッサ。 - 最も優先順位の高い要求が要求する場合に、前記最も優先順位の高い要求がメモリ帯域幅全体を利用することが可能である、請求項10に記載のネットワークプロセッサ。
- 前記メモリシステムが、少なくとも1つのスライスに配列された複数のバッファを含み、各バッファがクワッドワードに分割されている、請求項10または11に記載のネットワークプロセッサ。
- 前記メモリ調停機構に動作可能に結合された受信装置コントローラと、前記メモリ調停機構に動作可能に結合された送信装置コントローラと、前記メモリ調停機構に動作可能に結合された組込みプロセッサ複合体(EPC)とをさらに含む、請求項12に記載のネットワークプロセッサ。
- 前記コントローラが、バッファ・メモリ・アクセス・ベクトルを構築するために、
a)リフレッシュ・サイクルに合わせてスケジュールされたスライスを除外するステップと、
b)送信装置コントローラのR(読出し)要求に対してスライスを割り当てるステップと、
c)対応するEPC待ち行列[スライス;クワッドワード]からのRアクセスを補完するステップと、
d)全域がW(書込み)除外されたスライスについて、EPCにスライスを割り当てるステップと、
e)最後に割り当てられたスライス(直前のウィンドウにおいて受信装置コントローラに割り当てられたスライス)から始まる非除外スライス間のスライスを、W要求にRR(ラウンドロビン)方式で割り当てるステップと、
f)対応するEPC待ち行列[スライス;クワッドワード]からのWアクセスを補完するステップと、
g)重みによって表される優先順位に従って、EPC要求にスライスを割り当てるステップと、
を選択的に実施する請求項13に記載のネットワークプロセッサ。 - 請求項1乃至9のいずれかに記載の方法を実施するように適合されたプログラム・コード手段を備える、メモリ利用を最適化するコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US28106301P | 2001-04-03 | 2001-04-03 | |
US10/068,392 US6757795B2 (en) | 2001-04-03 | 2002-02-05 | Apparatus and method for efficiently sharing memory bandwidth in a network processor |
PCT/GB2002/001484 WO2002082286A2 (en) | 2001-04-03 | 2002-03-28 | Apparatus and method for efficiently sharing memory bandwidth in a network processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004523853A true JP2004523853A (ja) | 2004-08-05 |
JP4336108B2 JP4336108B2 (ja) | 2009-09-30 |
Family
ID=26748923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002580183A Expired - Fee Related JP4336108B2 (ja) | 2001-04-03 | 2002-03-28 | ネットワークプロセッサにおいてメモリ帯域幅を効率的に共用する装置および方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US6757795B2 (ja) |
EP (1) | EP1374072B1 (ja) |
JP (1) | JP4336108B2 (ja) |
KR (1) | KR100590387B1 (ja) |
CN (1) | CN1251102C (ja) |
AT (1) | ATE300763T1 (ja) |
AU (1) | AU2002242874A1 (ja) |
DE (1) | DE60205231T2 (ja) |
TW (1) | TW563028B (ja) |
WO (1) | WO2002082286A2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7353288B1 (en) * | 2001-10-17 | 2008-04-01 | Ciena Corporation | SONET/SDH payload re-mapping and cross-connect |
JP3970581B2 (ja) * | 2001-11-09 | 2007-09-05 | 富士通株式会社 | 伝送装置および伝送システム |
US7346067B2 (en) * | 2001-11-16 | 2008-03-18 | Force 10 Networks, Inc. | High efficiency data buffering in a computer network device |
JP3864250B2 (ja) * | 2002-10-31 | 2006-12-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 排他制御装置、排他制御方法、プログラム、及び記録媒体 |
US6954387B2 (en) * | 2003-07-15 | 2005-10-11 | International Business Machines Corporation | Dynamic random access memory with smart refresh scheduler |
US20050160188A1 (en) * | 2004-01-20 | 2005-07-21 | Zohar Bogin | Method and apparatus to manage memory access requests |
US7137091B1 (en) * | 2004-02-13 | 2006-11-14 | Sun Microsystems, Inc. | Hierarchical repeater insertion |
US7602777B2 (en) | 2004-12-17 | 2009-10-13 | Michael Ho | Cascaded connection matrices in a distributed cross-connection system |
US8254411B2 (en) * | 2005-02-10 | 2012-08-28 | International Business Machines Corporation | Data processing system, method and interconnect fabric having a flow governor |
CN100432957C (zh) * | 2005-02-12 | 2008-11-12 | 美国博通公司 | 一种管理存储器的方法 |
CN100438693C (zh) * | 2005-03-21 | 2008-11-26 | 华为技术有限公司 | 一种分组域的业务接入方法 |
US7987306B2 (en) * | 2005-04-04 | 2011-07-26 | Oracle America, Inc. | Hiding system latencies in a throughput networking system |
US20060248375A1 (en) | 2005-04-18 | 2006-11-02 | Bertan Tezcan | Packet processing switch and methods of operation thereof |
US7474662B2 (en) * | 2005-04-29 | 2009-01-06 | International Business Machines Corporation | Systems and methods for rate-limited weighted best effort scheduling |
US20070011287A1 (en) * | 2005-05-16 | 2007-01-11 | Charbel Khawand | Systems and methods for seamless handover in a streaming data application |
EP2016496B1 (en) * | 2006-04-21 | 2014-03-12 | Oracle America, Inc. | Hiding system latencies in a throughput networking system |
US7817652B1 (en) * | 2006-05-12 | 2010-10-19 | Integrated Device Technology, Inc. | System and method of constructing data packets in a packet switch |
US7747904B1 (en) | 2006-05-12 | 2010-06-29 | Integrated Device Technology, Inc. | Error management system and method for a packet switch |
US7706387B1 (en) | 2006-05-31 | 2010-04-27 | Integrated Device Technology, Inc. | System and method for round robin arbitration |
US7693040B1 (en) | 2007-05-01 | 2010-04-06 | Integrated Device Technology, Inc. | Processing switch for orthogonal frequency division multiplexing |
US8433859B2 (en) * | 2008-11-25 | 2013-04-30 | Mediatek Inc. | Apparatus and method for buffer management for a memory operating |
US20110320699A1 (en) * | 2010-06-24 | 2011-12-29 | International Business Machines Corporation | System Refresh in Cache Memory |
US8490107B2 (en) | 2011-08-08 | 2013-07-16 | Arm Limited | Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels |
KR102364382B1 (ko) * | 2017-12-20 | 2022-02-16 | 한국전기연구원 | 듀얼 포트 메모리 및 그 제어 방법 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4325116A (en) | 1979-08-21 | 1982-04-13 | International Business Machines Corporation | Parallel storage access by multiprocessors |
US4633434A (en) | 1984-04-02 | 1986-12-30 | Sperry Corporation | High performance storage unit |
US4797815A (en) | 1985-11-22 | 1989-01-10 | Paradyne Corporation | Interleaved synchronous bus access protocol for a shared memory multi-processor system |
US4761736A (en) | 1986-01-02 | 1988-08-02 | Commodore Business Machines, Inc. | Memory management unit for addressing an expanded memory in groups of non-contiguous blocks |
US5034914A (en) | 1986-05-15 | 1991-07-23 | Aquidneck Systems International, Inc. | Optical disk data storage method and apparatus with buffered interface |
EP0407697A1 (en) | 1989-07-10 | 1991-01-16 | Seiko Epson Corporation | Memory apparatus |
US5603061A (en) | 1991-07-23 | 1997-02-11 | Ncr Corporation | Method for prioritizing memory access requests using a selected priority code |
US5559953A (en) | 1994-07-01 | 1996-09-24 | Digital Equipment Corporation | Method for increasing the performance of lines drawn into a framebuffer memory |
US5581310A (en) | 1995-01-26 | 1996-12-03 | Hitachi America, Ltd. | Architecture for a high definition video frame memory and an accompanying data organization for use therewith and efficient access therefrom |
US5781201A (en) | 1996-05-01 | 1998-07-14 | Digital Equipment Corporation | Method for providing improved graphics performance through atypical pixel storage in video memory |
US5907863A (en) | 1996-08-16 | 1999-05-25 | Unisys Corporation | Memory control unit using preloaded values to generate optimal timing of memory control sequences between different memory segments |
US5920898A (en) | 1996-08-16 | 1999-07-06 | Unisys Corporation | Memory control unit providing optimal timing of memory control sequences between different memory segments by optimally selecting among a plurality of memory requests |
US6031842A (en) | 1996-09-11 | 2000-02-29 | Mcdata Corporation | Low latency shared memory switch architecture |
US5966143A (en) | 1997-10-14 | 1999-10-12 | Motorola, Inc. | Data allocation into multiple memories for concurrent access |
US5870325A (en) | 1998-04-14 | 1999-02-09 | Silicon Graphics, Inc. | Memory system with multiple addressing and control busses |
DE69935852T2 (de) | 1999-06-09 | 2007-12-20 | Texas Instruments Inc., Dallas | Host-Zugriff zu gemeinschaftlichem Speicher mit Hochprioritätsbetriebsart |
-
2002
- 2002-02-05 US US10/068,392 patent/US6757795B2/en not_active Expired - Fee Related
- 2002-03-28 DE DE60205231T patent/DE60205231T2/de not_active Expired - Lifetime
- 2002-03-28 AT AT02708513T patent/ATE300763T1/de not_active IP Right Cessation
- 2002-03-28 KR KR1020037011580A patent/KR100590387B1/ko not_active IP Right Cessation
- 2002-03-28 AU AU2002242874A patent/AU2002242874A1/en not_active Abandoned
- 2002-03-28 JP JP2002580183A patent/JP4336108B2/ja not_active Expired - Fee Related
- 2002-03-28 CN CNB028071433A patent/CN1251102C/zh not_active Expired - Fee Related
- 2002-03-28 WO PCT/GB2002/001484 patent/WO2002082286A2/en active IP Right Grant
- 2002-03-28 EP EP02708513A patent/EP1374072B1/en not_active Expired - Lifetime
- 2002-04-03 TW TW091106777A patent/TW563028B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW563028B (en) | 2003-11-21 |
CN1251102C (zh) | 2006-04-12 |
WO2002082286A3 (en) | 2003-10-30 |
KR100590387B1 (ko) | 2006-06-15 |
ATE300763T1 (de) | 2005-08-15 |
DE60205231D1 (de) | 2005-09-01 |
KR20040028725A (ko) | 2004-04-03 |
US6757795B2 (en) | 2004-06-29 |
EP1374072A2 (en) | 2004-01-02 |
EP1374072B1 (en) | 2005-07-27 |
DE60205231T2 (de) | 2006-05-24 |
US20020141256A1 (en) | 2002-10-03 |
JP4336108B2 (ja) | 2009-09-30 |
AU2002242874A1 (en) | 2002-10-21 |
WO2002082286A2 (en) | 2002-10-17 |
CN1498374A (zh) | 2004-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4336108B2 (ja) | ネットワークプロセッサにおいてメモリ帯域幅を効率的に共用する装置および方法 | |
US7143219B1 (en) | Multilevel fair priority round robin arbiter | |
US7849256B2 (en) | Memory controller with ring bus for interconnecting memory clients to memory devices | |
US7684424B2 (en) | Memory interleaving in a high-speed switching environment | |
US20070294447A1 (en) | Information Processing Apparatus and Access Control Method Capable of High-Speed Data Access | |
WO2005114669A2 (en) | System and method for improving performance in computer memory systems supporting multiple memory access latencies | |
US7506081B2 (en) | System and method of maintaining high bandwidth requirement of a data pipe from low bandwidth memories | |
JP4446757B2 (ja) | 高速交換環境で共有されたメモリ資源を管理するシステム、方法及び論理 | |
US20070294448A1 (en) | Information Processing Apparatus and Access Control Method Capable of High-Speed Data Access | |
US7245617B2 (en) | Queuing packets written to memory for switching | |
US6937611B1 (en) | Mechanism for efficient scheduling of communication flows | |
US7242684B2 (en) | Architecture for switching packets in a high-speed switching environment | |
JP4852138B2 (ja) | 高速交換環境でマルチキャスティングするシステム、方法及び論理 | |
JP5691419B2 (ja) | 要求転送装置及び要求転送方法 | |
CN116472703A (zh) | 一种缓存路由结构、方法和芯片 | |
KR20220009848A (ko) | 공유 리스스에 대한 액세스를 중재하기 위한 시스템들 및 방법들 | |
JP2731743B2 (ja) | 通信レジスタ付並列計算機 | |
CN116686269A (zh) | 一种路由器及片上系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050902 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050913 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20051209 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060313 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060627 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070207 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090324 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090511 |
|
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: 20090626 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 3 |
|
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: 20130703 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |