(57)【要約】【課題】ネットワークプロセッサにおいて、メモリ帯域幅を効率的に利用する方法を提供すること。【解決手段】ネットワークプロセッサ（ＮＰ）は、最大限のメモリ利用を可能にするコントローラを含む。コントローラは、ＮＰ内の要求側からのメモリアクセス要求を監視すると共に優先順位の高い要求側が要求するすべてのメモリ帯域幅を優先順位の高い要求側に授与するメモリ調停機構を含む。優先順位の高い要求側が要求するメモリ帯域幅がメモリ帯域幅全体よりも少ないものである場合に、要求された帯域幅とメモリ帯域幅全体との差は、より優先順位の低い要求側に割り当てられる。そうすることで、すべてのメモリ・アクセスが、メモリ帯域幅全体を利用するようになる。
2004523853.tif 000002
【特許請求の範囲】
【請求項１】
メモリ調停機構内で複数のメモリアクセス要求を受け取るステップであって、少なくとも１つの前記メモリアクセス要求が優先順位指定と関連づけられるステップと、
必要なメモリ帯域幅の大きさを決定するために、前記メモリ調停機構によって、特定の優先順位指定を有する前記メモリアクセス要求を分析するステップと、
前記特定の優先順位指定を有するメモリ要求がメモリ帯域幅全体を必要とするのではない場合に、メモリアクセスを少なくとも１つの他の要求と共有するステップと、
を含むメモリ利用を最適化する方法。
【請求項２】
特定の優先順位指定を有する前記メモリ要求がメモリ帯域幅全体を必要とする場合に、メモリ帯域幅全体を利用するための、前記特定の優先順位を有する前記メモリアクセス要求を許可するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記特定の優先順位指定が最も高いものである、請求項１または２に記載の方法。
【請求項４】
少なくとも１つのスライス内に配列された複数のバッファを有するメモリを提供するステップであって、前記少なくとも１つのスライス内の各バッファが複数のクワッドワードに分割され、メモリ要求が複数の要求側からの少なくとも１つのスライスへのアクセスを求めているステップを含む、請求項１、２、３のいずれかに記載の方法。
【請求項５】
複数の要求側がメモリアクセス要求を行い、前記複数の要求側としては、ネットワークプロセッサ内部で動作可能に結合された、受信装置コントローラ、送信装置コントローラ、組込みプロセッサ複合体（ＥＰＣ）コントローラが含まれる、請求項１乃至４のいずれかに記載の方法。
【請求項６】
送信装置コントローラが最も高い優先順位を有し、受信装置コントローラが次に高い優先順位を有する、請求項５に記載の方法。
【請求項７】
ＥＰＣコントローラが、メモリ帯域幅を送信装置コントローラまたは受信装置コントローラと共用する、請求項６に記載の方法。
【請求項８】
要求には読出しおよび書込みがあり、少なくとも１つの読出し要求が送信装置コントローラによって生成され、少なくとも１つの書込み要求が受信装置コントローラによって提供される、請求項５乃至７のいずれかに記載の方法。
【請求項９】
読出しおよび書込み要求がＥＰＣコントローラによって提供される、請求項８に記載の方法。
【請求項１０】
情報を格納するメモリシステムと、前記メモリシステムに動作可能に結合された、アクセスを認可するメモリ調停機構とを含むネットワークプロセッサであって、
前記メモリ調停機構が、
メモリアクセス要求を受け取る１つまたは複数の要求レジスタと、
要求側に対する優先順位指定を格納する少なくとも１つの優先順位レジスタと、
前記要求レジスタおよび優先順位レジスタに動作可能に結合されたコントローラとを含み、
前記コントローラが、
メモリ・アクセス・ベクトルを生成するための、要求および要求の優先順位を監視する回路を含み、
前記メモリ・アクセス・ベクトルにおいて、最も優先順位の高い要求が帯域幅全体よりも少ないものを求める場合に、最も優先順位の高い要求がメモリ帯域幅を少なくとも１つの他のメモリ要求と共用することを可能とする、
ネットワークプロセッサ。
【請求項１１】
最も優先順位の高い要求が要求する場合に、前記最も優先順位の高い要求がメモリ帯域幅全体を利用することが可能である、請求項１０に記載のネットワークプロセッサ。
【請求項１２】
前記メモリシステムが、少なくとも１つのスライスに配列された複数のバッファを含み、各バッファがクワッドワードに分割されている、請求項１０または１１に記載のネットワークプロセッサ。
【請求項１３】
前記メモリ調停機構に動作可能に結合された受信装置コントローラと、前記メモリ調停機構に動作可能に結合された送信装置コントローラと、前記メモリ調停機構に動作可能に結合された組込みプロセッサ複合体（ＥＰＣ）とをさらに含む、請求項１２に記載のネットワークプロセッサ。
【請求項１４】
前記コントローラが、バッファ・メモリ・アクセス・ベクトルを構築するために、
ａ）リフレッシュ・サイクルに合わせてスケジュールされたスライスを除外するステップと、
ｂ）送信装置コントローラのＲ（読出し）要求に対してスライスを割り当てるステップと、
ｃ）対応するＥＰＣ待ち行列［スライス；クワッドワード］からのＲアクセスを補完するステップと、
ｄ）全域がＷ（書込み）除外されたスライスについて、ＥＰＣにスライスを割り当てるステップと、
ｅ）最後に割り当てられたスライス（直前のウィンドウにおいて受信装置コントローラに割り当てられたスライス）から始まる非除外スライス間のスライスを、Ｗ要求にＲＲ（ラウンドロビン）方式で割り当てるステップと、
ｆ）対応するＥＰＣ待ち行列［スライス；クワッドワード］からのＷアクセスを補完するステップと、
ｇ）重みによって表される優先順位に従って、ＥＰＣ要求にスライスを割り当てるステップと、
を選択的に実施する請求項１３に記載のネットワークプロセッサ。
【請求項１５】
請求項１乃至９のいずれかに記載の方法を実施するように適合されたプログラム・コード手段を備える、メモリ利用を最適化するコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的には、コンピュータおよびネットワークプロセッサに関し、より詳細には、前記コンピュータおよびネットワークプロセッサと共に使用するメモリシステムに関する。
【背景技術】
【０００２】
通信ネットワーク内部で情報を転送するために、スイッチ、ブリッジ、コンピュータ、ネットワークプロセッサなどのネットワーク装置を使用することは、従来技術において公知である。こうした装置に対する要件の１つは、こうした装置が、しばしば帯域幅と呼ばれる大量のデータを運ぶ必要があることである。
【０００３】
高帯域幅の要件を満たすために、装置にはクリアチャネルが設けられる。クリアチャネルとは、いくつかのより低い帯域幅のデータフローを単一の物理リンクで搬送するチャネル化されたリンクとは対照的な、大量のデータを単一のフローで伝送する高帯域幅を有するチャネルである。
【０００４】
クリアチャネルに十分なデータ供給を提供するためには、高速の記憶装置サブシステムが必要である。スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）など高速記憶装置システムは、高帯域幅の要件を満たすのに使用することができる。しかし、こうしたメモリは高価であり、結果としてそれを使用する装置の価格が高くなる。このような高価格のメモリを、コンピュータおよびネットワークプロセッサの記憶装置システムの構築に使用すると、価格の問題はさらに悪化する。
【０００５】
従来技術の高速メモリは、高価であるだけでなく低密度である。それは、限定された量のデータしか格納することができない。しかし、特にインターネットに関連するほとんどのアプリケーションその他の技術は、高密度のメモリまたは記憶装置システムを必要とする。その結果、従来技術の高速メモリでも、多くのアプリケーションには適するものではない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、ネットワークプロセッサにおいてメモリ帯域幅を効率的に共用する装置および方法を提供することである。
【課題を解決するための手段】
【０００７】
したがって、本発明は、メモリ調停機構内で複数のメモリアクセス要求を受け取る動作であって、そのメモリアクセス要求の少なくとも１つが優先順位の指定（優先順位の指定は、要求と共に届いても、または要求が届いた後に割り当ててもよい）と関連づけられている動作と、要求されたメモリ帯域幅の大きさを決定するために、特定の優先順位指定を有するメモリアクセス要求を前記メモリ調停機構によって分析する動作と、特定の優先順位指定を有するメモリ要求がメモリ帯域幅全体を要求するのではない場合には、少なくとも１つの他の要求とメモリアクセスを共有する動作とを含む、メモリの利用を最適化する方法を提供する。
【０００８】
好適には、低価格かつ高密度の高速メモリを提供する。本文書では、高速メモリとは、好適には、大量のデータを比較的短い時間で提供する、広い帯域幅（Ｂａｎｄｗｉｄｔｈ，ＢＷ）を有する。
【０００９】
好適には、特定の優先順位指定を有するメモリアクセス要求は、メモリ帯域幅全体を必要とする場合に、メモリ帯域幅全体の利用を許可される。一実施形態では、この特定の優先順位指定は最も高いものである。
【００１０】
好適には、少なくとも１つのスライス内に配列された複数のバッファを有するメモリが提供され、少なくとも１つのスライス内の各バッファは複数のクワッドワード（Ｑｕａｄｗｏｒｄ）に分割され、メモリ要求は、複数の要求側から少なくとも１つのスライスへのアクセスを求める。
【００１１】
本発明は、好適には、メモリシステムを使用する資源による、前記メモリシステムの利用を最適化する方法を含む。具体的には、複数の要求側からの読出しまたは書込み要求が、好適には、各メモリアクセス・サイクルごとに、最大許容情報単位を読み出しまたは書き込みできるように、束ねられる。そうすることによって、情報スループットが増加し、その結果、コンピュータのネットワークプロセッサまたは類似の装置の記憶装置の構築に使用される比較的低価格で、高密度で、比較的アクセス時間の遅いメモリ（ＤＤＲ  ＤＲＡＭなど）の使用が可能になる。
【００１２】
好適な実施形態によれば、要求側（すなわち、メモリアクセス要求の要求側）としては、ネットワークプロセッサまたは類似の装置内にある、受信装置コントローラ、組込みプロセッサ複合体（ＥＰＣ）コントローラ、送信装置コントローラが含まれる。メモリシステムは、好適には、ＤＤＲ  ＤＲＡＭモジュールから形成されると共に「スライス」と呼ばれる群として配列される複数のバッファを含む。各ＤＤＲ  ＤＲＡＭは、好適には、複数のバッファ（１〜Ｎ）に分割され、ＤＲＡＭコントローラによって制御される。各バッファは、好適には、「クワッドワード」と呼ばれるセクションに分割される。一実施形態では、バッファは、クワッドワードＡ、Ｂ、Ｃ、Ｄに分割される。バッファおよびバッファ内のクワッドワードはいずれもアドレス指定可能である。
【００１３】
好適な実施形態によれば、メモリ調停機構は、受信装置コントローラ、ＥＰＣコントローラ、送信装置コントローラからの要求を監視する。メモリ調停機構は、好適には、その要求を使用して、メモリの１スライスごとにメモリ・アクセス・ベクトルを形成する。読出し要求の場合、メモリアクセスの優先権は、好適には、送信装置コントローラに与えられる。送信装置コントローラからの要求がメモリ帯域幅全体を必要とする場合に、メモリ・アクセス・ベクトルは、好適には、送信装置コントローラの要求にのみ基づく。メモリ帯域幅全体より少ないものを送信装置コントローラが必要とする場合に、ＥＰＣからの保留状態の読出し要求は、好適には、送信装置コントローラからの要求とマージされて、１スライスごとにメモリ・アクセス・ベクトルを形成する。ＤＲＡＭコントローラは、メモリ・アクセス・ベクトルに応答して、好適には、（バッファ１つ分のデータが要求された場合は）送信装置コントローラ用のデータを含むか、または（送信装置がバッファ全体よりも少ないものを要求した場合は）送信装置コントローラおよびＥＰＣ用のデータを含む、バッファ１つ分の情報を出力する。本質的には、送信装置コントローラがバッファ１つ分より少ないデータを要求した結果生じるいかなる超過容量も、好適には、ＥＰＣコントローラに割り振られる。
【００１４】
書込み要求の好適な実施形態によれば、調停機構は、受信装置コントローラに優先権を与える。同様の方法で、受信装置コントローラがバッファ・ペイロード全体よりも少ないものを有するどの書込み要求も、好適には、ＥＰＣからのデータで増補される。
【００１５】
その結果、バッファ１つ分のデータが、好適には、各メモリアクセスにおいて、常に書き込まれ、または読み出される。
【００１６】
別の態様によれば、本発明は、情報を格納するメモリシステムと、前記メモリシステムに動作可能に結合された、アクセスを認可するメモリ調停機構とを含むネットワークプロセッサを提供し、前記メモリ調停機構は、メモリアクセス要求を受け取る１つまたは複数の要求レジスタと、要求側の優先順位指定を格納する少なくとも１つの優先順位レジスタと、要求レジスタおよび優先順位レジスタに動作可能に結合されたコントローラとを含み、前記コントローラは、要求および要求の優先順位を監視する回路を含み、最も優先順位の高い要求が帯域幅全体よりも少ないものを求める場合に、最も優先順位の高い要求がメモリ帯域幅を少なくとも１つの他のメモリ要求と共用することを可能にする、メモリ・アクセス・ベクトルを生成する。
【００１７】
一実施形態によれば、ａ）少なくとも１つのスライス内に配列された複数のバッファを有するメモリを提供する動作であって、前記少なくとも１つのスライス内の各バッファが複数のクワッドワードに分割されている動作と、ｂ）メモリ調停機構内で、複数の要求側からの少なくとも１つのスライスへのアクセスを求める複数のメモリ要求を受け取る動作と、ｃ）前記メモリ調停機構によって、要求のそれぞれに所定の優先順位を割り当てる動作と、ｄ）前記メモリ調停機構によって、最も優先順位の高い要求を分析し、前記最も優先順位の高い要求に必要なメモリ帯域幅のパーセンテージを検出する動作と、ｅ）最も優先順位の高い要求がメモリ帯域幅全体を利用するのではない場合に、メモリアクセスをより優先順位の低い要求と共有する動作とを含む、メモリの利用を最適化する方法が提供される。
【００１８】
一実施形態によれば、ａ）少なくとも１つのスライス内に配列された複数のバッファを有するメモリを提供する動作であって、前記少なくとも１つのスライス内の各バッファが複数のクワッドワードに分割されている動作と、ｂ）メモリ調停機構内で、複数の要求側からの少なくとも１つのスライスへのアクセスを求める複数のメモリ要求を受け取る動作と、ｃ）前記メモリ調停機構によって、要求のそれぞれに所定の優先順位を割り当てる動作と、ｄ）前記メモリ調停機構によって、最も優先順位の高い要求を分析し、前記最も優先順位の高い要求に必要なメモリ帯域幅のパーセンテージを検出する動作と、ｅ）最も優先順位の高い要求がメモリ帯域幅全体を必要とする場合に、前記最も優先順位の高い要求にメモリ帯域幅全体の利用を許可する動作、または、前記最も優先順位の高い要求がメモリ帯域幅全体よりも少ないものを要求する場合に、より優先順位の低い要求とメモリ帯域幅を共用する動作とを含む、メモリの利用を最適化する方法が提供される。
【００１９】
好適には、複数の要求側には、ネットワークプロセッサ内部で動作可能に結合されている、受信装置コントローラ、送信装置コントローラ、組込みプロセッサ複合体（Ｅｍｂｅｄｄｅｄ  Ｐｒｏｃｅｓｓｏｒ  Ｃｏｍｐｌｅｘ、ＥＰＣ）コントローラが含まれる。一実施形態では、送信装置コントローラが最も高い優先順位を有する。受信装置コントローラが、その次に高い優先順位を有する。
【００２０】
一実施形態では、ＥＰＣは、送信装置コントローラまたは受信装置コントローラとメモリ帯域幅を共用する。要求には、読出し要求および書込み要求がある。一実施形態では、読出し要求は、送信装置コントローラによって生成される。一実施形態では、書込み要求は、受信装置コントローラによって提供される。読出しおよび書込み要求は、ＥＰＣコントローラが提供してもよい。
【００２１】
一実施形態によれば、メモリ調停機構内に複数のメモリアクセス要求を受け取る動作と、前記メモリ調停機構内に少なくとも１つのメモリアクセス要求の優先順位指定を提供する動作と、要求されたメモリ帯域幅の大きさを決定するために、優先順位指定を有するメモリアクセス要求を前記メモリ調停機構によって分析する動作と、前記優先順位指定を有するメモリ要求に、優先順位指定を有する前記メモリ要求がメモリ帯域幅全体を要求する場合に、メモリ帯域幅全体の利用を許可し、また、優先順位指定を有する前記メモリアクセス要求がメモリ帯域幅全体よりも少ないものを要求する場合には、他の要求とのメモリ帯域幅の共用を許可する動作とを含む、メモリの利用を最適化する方法が提供される。
【００２２】
好適には、優先順位指定は最も高いものである。一実施形態では、共用は、最も優先順位の高い要求のメモリ帯域幅と、より優先順位の低い要求のメモリ帯域幅との組合せをさらに含む。
【００２３】
一実施形態によれば、情報を格納するメモリシステムと、前記メモリシステムに動作可能に結合された、アクセスを認可するメモリ調停機構とを含むネットワークプロセッサが提供され、前記メモリ調停機構は、メモリアクセス要求を受け取る１つまたは複数の要求レジスタと、要求側の優先順位指定を格納する少なくとも１つの優先順位レジスタと、要求レジスタおよび優先順位レジスタに動作可能に結合された第１のコントローラとを含み、前記コントローラは、要求および要求の優先順位を監視する回路を含み、最も優先順位の高い要求が求める場合に、メモリ帯域幅全体の利用を可能にするメモリ・アクセス・ベクトルを生成し、または最も優先順位の高い要求およびより優先順位の低い要求がメモリ帯域幅全体を共用するメモリアクセス要求を生成する。
【００２４】
好適には、メモリシステムは、少なくとも１つのスライス内に配列された複数のバッファを含み、各バッファはクワッドワードに分割される。好適には、各スライスは、少なくとも１つのバッファコントローラに動作可能に結合される。好適には、各バッファは６４バイトであり、それぞれ１６バイトの４つのクワッドワードに分割される。各スライスは、ＤＤＲ  ＤＲＡＭから製作することができる。
【００２５】
好適には、メモリ調停機構に動作可能に結合された受信装置コントローラがさらに提供される。前記メモリ調停機構に動作可能に結合された送信装置コントローラがあってもよい。メモリ調停機構に動作可能に結合された組込みプロセッサ複合体、すなわちＥＰＣがあってもよい。好適には、送信装置コントローラを含む実施形態では、それに動作可能に結合されたスケジューラがある。
【００２６】
一実施形態では、第１のコントローラが、バッファ・メモリ・アクセス・ベクトルを構築するために、以下のステップ、すなわち、ａ）（各ＤＲＡＭコントローラによって指示される）リフレッシュ・サイクルに合わせてスケジュールされたスライスを除外するステップと、ｂ）送信装置コントローラのすべてのＲ（読出し）要求用にスライスを割り当てるステップと、ｃ）対応するＥＰＣ待ち行列［スライス；クワッドワード］からのＲアクセスを補完するステップと、ｄ）全域がＷ（書込み）除外されたスライス（たとえば、スライスは、受信装置からのすべてのスライス除外規則によって除外される）について、ＥＰＣにスライスを割り当てるステップと、ｅ）最後に割り当てられたスライス（直前のウィンドウにおいて受信装置コントローラに割り当てられたスライス）から始まる非除外スライス間のスライスを、Ｗ要求にＲＲ（ラウンドロビン）方式で割り当てるステップと、ｆ）対応するＥＰＣ待ち行列［スライス；クワッドワード］からのＷアクセスを補完するステップと、ｇ）重みによって表される優先順位に従って、ＥＰＣ要求にスライスを割り当てるステップとを選択的に実施する。
【００２７】
一実施形態によれば、１より大きいＮ個のセクタに分割されたメモリと、前記メモリに動作可能に結合されたメモリ調停機構コントローラとを備える装置であって、前記メモリ調停機構コントローラが、少なくとも２つのメモリアクセス要求を受け取り、前記要求にメモリアクセスの優先順位を割り当て、前記要求のうちの選択された１つを分析して、前記メモリ要求のうちの前記選択された１つが特定のメモリ・アクセス・サイクルに対してメモリ帯域幅全体を使用するかどうかを判定し、メモリ帯域幅全体が要求された場合に前記要求のうちの選択された１つにメモリ帯域幅全体を割り当てるメモリ・アクセス・ベクトルを生成し、メモリ帯域幅全体が使用されるのではない場合にメモリ帯域幅を別の要求と共用する装置が提供される。
【００２８】
一実施形態によれば、ａ）第１の要求側からの読出し要求をメモリ調停機構内で受け取る動作であって、前記読出し要求が、メモリのうちのデータが読み出される部分を識別する情報を含む動作と、ｂ）返されるデータが、使用可能なメモリ帯域幅の全部を使用したかどうかを判定する動作と、ｃ）第１の要求側によってメモリ帯域幅全体が使用されるのではない場合に、第１の要求側のために返されたデータを、第２の要求側のためのデータで補完する動作とを含む、メモリにアクセスする方法が提供される。
【００２９】
一実施形態によれば、ａ）メモリへのアクセスを求める第１の要求側からの要求を、調停機構内で受け取る動作と、ｂ）前記要求の結果、メモリ帯域幅のどの部分が使用されるのかを判定する動作と、ｃ）ステップｂ）における判定がメモリ帯域幅の完全な使用を指示する場合に、メモリ帯域幅全体の使用を第１の要求側に割り当てる動作と、ｄ）ステップｂ）における判定で、第１の要求側の帯域幅使用がメモリ帯域幅全体よりも少ないと指示される場合に、第１の要求側の帯域幅使用を第２の要求側が要求する帯域幅使用で補完する動作とを含む方法が提供される。
【００３０】
要求には、読み出しと書込みがあり得る。好適には、第２の要求側はＥＰＣ（組込みプロセッサ複合体）が含まれる。好適には、第１の要求側には受信装置コントローラが含まれる。
【００３１】
上記のものは、コンピュータプログラムとして実装できることを理解されたい。
【００３２】
次に、本発明の好適な実施形態を、例示の目的でのみ、以下の図面を参照して説明することとする。
【発明を実施するための最良の形態】
【００３３】
図１は、以下に示す本発明の好適な実施形態が実装されるネットワークプロセッサ（ＮＰ）のブロック図を示す。ネットワークプロセッサは、入口（Ｉｎｇｒｅｓｓ）側１０および出口（Ｅｇｒｅｓｓ）側１２を含む。入口側１０および出口側１２は、仮想軸ＡＡに関して対称である。入口側１０にアクセスするデータ・トラフィックは、フレックスバス４（Ｆｌｅｘｂｕｓ４）またはＷＲＡＰ伝送線から入り、スイッチ・インタフェース１０’から出る。同様に、出口側１２に入るデータは、スイッチ・インタフェース１２’から入り、フレックスバス４’で示す導線から出る。フレックスバス４、４’、およびスイッチ・インタフェース（Int）１０’、１２’は、それぞれ１０Ｇｂｐｓおよび１４Ｇｂｐｓを配信するクリアチャネルとみなすことができる。スイッチ・インタフェース１０’は、ＩＢＭ（Ｒ）によって開発、販売されているＰｒｉｚｍａなどのスイッチ・アセンブリ（図示せず）によって、スイッチ・インタフェース１２’に結合される。
【００３４】
図１をさらに参照すると、入口側１０は、データ・フロー・チップ１４、ＥＰＣチップ１６、データ・バッファ１８、スケジューラ・チップ２０を含む。出口側１２は、データ・フロー・チップ１４’、ＥＰＣチップ１６’、データ・バッファ１８’、スケジューラ・チップ２０’を含む。ＷＲＡＰ伝送線は、データ・フロー・チップ１４’をデータ・フロー・チップ１４に相互接続する。上記の構成要素は、図に示すように相互接続される。図中の同様の名前の構成要素は実質的にも同様であり、一方の説明が他方の説明に当てはまることに留意されたい。例として、ＥＰＣチップ１６とＥＰＣチップ１６’は実質的に同一のものである。同様に、同様の名前をもつ他の構成要素も、同一のものである。
【００３５】
図１に示す構成は、双方向の機能を提供する。チップセットを介するパケットの移動を用いて、その機能を説明する。Ｓｏｎｅｔ／ＳＤＨストリームからフレーマ装置（図示せず）によって抽出されたＨＤＬＣフレームは、フレックスバス４（入口側）で受け取られ、データ・フロー・チップ１４へ転送される。フレームからのデータは、データ・バッファ１８に書き込まれる。データ・バッファ１８内に完全なフレームが書き込まれると、フレーム・コンテキスト（ＦＣＢ）が、ＥＰＣ（組込みプロセッサ複合体）待ち行列（図２のＧ−ＦＩＦＯ）の１つに登録される。ＥＰＣチップ１６は、フレーム・ポインタを読み取り、そのピコプロセッサの１つにおいてそれぞれのフレームを処理する。フレーム処理の間、ＥＰＣは、フレームの適切な部分（たとえば、Ｌ２およびＬ３ヘッダ）を、データ・バッファから読み出すための、またはそこへ書き込むための要求を発行することができる。フレーム処理が完了した後、ＥＰＣは、フレーム・コンテキストをデータ・フロー・チップに渡し、このデータ・フロー・チップは、スケジューラ・チップ２０の待ち行列作成構造にフレームを登録する。スケジューラ・チップ２０内のスケジューラは、伝送に適した待ち行列からフレームを選択する。このことは、対応するフレーム・ポインタがデータ・フロー・チップに渡されることを意味する。伝送されるフレームは、データ・バッファから読み出され、ＰＲＩＺＭＡセルの形でスイッチ・インタフェース１０’を介して伝送される。ＰＲＩＺＭＡセルは、可変サイズのフレームからなるセグメントを搬送する６４バイトのセル、すなわち完全な非同期転送モード（ＡＴＭ）セルである。セルは、スイッチ・インタフェース１０’を介してクロスポイント・スイッチ（図示せず）へ送られる。好適な実施形態では、クロスポイント・スイッチは、インターナショナル・ビジネス・マシーンズ・コーポレーションによって製造、販売されている、ＰＲＩＺＭＡという名称の製品である。
【００３６】
図１をさらに参照すると、出口側の出口方向において、ＰＲＩＺＭＡセルをスイッチ・インタフェース１２’で受け取り、データ・バッファ１８’へ転送する。完全なフレームを受け取った後、フレーム・ポインタが処理のためにＥＰＣ待ち行列に登録される。出口ＥＰＣ１６’は、データ・フロー・チップからフレーム・コンテキストを取り出し、ＥＰＣピコプロセッサ（図示せず）内で稼動するピココード中のフレーム・ヘッダを処理する。処理結果はフレーム・コンテキストであり、データ・フロー・チップ１４’に渡され、スケジューラ２０’の適切な待ち行列に登録される。スケジューラ・チップ２０’内のスケジューラは、伝送するフレームを選択し、次いで、このフレームがデータ・バッファ１８’から読み出され、データ・フロー・チップ１４’のフレックスバス４’で示すライン・インタフェース上を伝送される。話を簡潔にするために、好適な実施形態において、本発明にとって重要なネットワークプロセッサの部分のみをさらに述べる。
【００３７】
図２は、本発明の好適な実施形態の教示による、データ・フロー・チップおよびメモリシステム（Ｓｙｓ）２１のブロック図を示す。データ・フロー・チップへ入るデータは、Ｄａｔａ＿ｉｎで示すバス上で提供され、チップから出るデータは、Ｄａｔａ＿ｏｕｔで示すバス上を伝送される。先に述べたように、Ｄａｔａ＿ｉｎおよびＤａｔａ＿ｏｕｔは、大量のデータを伝送するクリアチャネルである。メモリシステム２１は、スライス０〜スライスＮと呼ばれる複数のＤＤＲ  ＤＲＡＭから構成される。図２に示す実施形態では、Ｎ＝５である。後で説明するように、各スライスは複数のバッファから構成され、個々のバス０〜５によって、データ・フロー・チップ内の別々のＤＲＡＭコントローラに接続される。ＤＲＡＭコントローラは、従来のＤＲＡＭコントローラであり、書込み、読出し、リフレッシュ、および他の機能を、サービスの対象となるスライスに提供する。ＤＲＡＭコントローラは当該技術分野において公知であるので、これ以上は説明なされない。
【００３８】
図２をさらに参照すると、データ・フロー・チップ内の機能ブロックは、受信装置コントローラ２２、メモリ調停機構２４、ＦＣＢ調停機構２６、ＢＣＢ調停機構２８、ＥＰＣコントローラ３０、バッファ受諾および課金ブロック３２、スケジューラ・インタフェース・コントローラ３４、および送信装置コントローラ３６を含む。ＱＤＲ  ＳＲＡＭ３８は、メモリシステム２１内にあるバッファのリストを格納する。ＱＤＲ  ＳＲＡＭ４０は、ターゲット・ブレード（Ｔ／Ｂ）待ち行列およびターゲットポート（ＴＰ）待ち行列中のフレームに関連する情報を格納する。メモリ調停機構２４は、データ・フロー・チップをメモリシステム２１にインタフェースする。この目的のために、メモリ調停機構は、送信装置、受信装置、組込みプロセッサ複合体（ＥＰＣ）コントローラ２２、３６、３８からの読出し（Ｒ）／書込み（Ｗ）要求を集め、個々のデータ格納メモリ・スライスへのアクセスをスケジュールする。後で説明するように、各メモリ・スライスは、各バッファが６４バイトである複数のバッファを含む。他のサイズのデータ帯域幅も設計できることに留意されたい。次いで、フレーム・データは、メモリ帯域幅を最大限に使用するために、メモリの別々のスライス上に広がる別々のバッファに書き込まれる。メモリからデータを読み出す際には、データは６４バイト分取り出される。別の言い方をすれば、メモリに入る、またはそこから出る帯域幅は６４バイトである。他のサイズのデータ帯域幅も設計できることに留意されたい。好適な実施形態によるメモリ調停機構により、メモリへのいかなるアクセス（読出しまたは書込み）も、６４バイトのペイロードを有することになる。要求側からの要求が６４バイト未満である場合、ペイロードは、別の要求側からのデータによって増補される。
【００３９】
図２をさらに参照すると、受信装置コントローラ２２は、Ｄａｔａ＿ｉｎで示す入力バスからデータを受け取り、メモリシステム２１内の個々のバッファに受信データを書き込むために書込み要求を発行する。同様に、送信装置コントローラ３６は、選択したフレームをＤＡＴＡＯＵＴ上で送信するために、読出し要求を発行する。ＥＰＣコントローラ３０は、ＥＰＣからの、またはそこへの様々なメッセージを打ち切り、データ記憶部（メモリシステム２１）に読出し／書込み要求を発行する。ＥＰＣコントローラはまた、処理待機フレームのトラック（Ｇ−ＦＩＦＯ）を保持する。バッファ受諾および課金ブロック３２は、各フレームベースで待ち行列への登録／破棄を決定する責任を負う。このブロック３２はまた、ＴＢ／ＴＰベースで待ち行列の充填レベルを保持し、スイッチ・インタフェース上のスイッチ・ファブリックにこの情報を提供する。ＢＣＢおよびＦＣＢメモリ調停機構は、ＦＣＢまたはＢＣＢの連鎖／連鎖解除、ＦＣＢまたはＢＣＢの専有／解放など、リンク・リスト操作のための様々なアクセスのスケジューリングを行う。
【００４０】
図３は、本発明の好適な実施形態による、メモリ調停機構の機能ブロック図を示す。メモリ調停機構の機能は、メモリシステム２１へのアクセスを提供することである。メモリ調停機構は、受信装置コントローラ２２、送信装置／コントローラ３６、およびＥＰＣコントローラ３０から要求を受諾する。要求には優先順位がつけられ、その順位は、送信装置コントローラ３６が最も高く、受信装置コントローラ２２がその次に高く、ＥＰＣコントローラ３０が最も低い。もちろん、異なる順序または優先順位を選択することもできる。メモリへのアクセスの許可を与える際、調停機構は、各メモリアクセスについて、メモリが許可する最大限のデータ帯域幅が利用されるようにする。したがって、メモリ要求がデータ読出しである場合、その要求は送信装置コントローラ３６またはＥＰＣコントローラ３０あるいはその両方からの読出し要求である。メモリ調停機構は、送信装置コントローラからの要求を分析する。要求がメモリ帯域幅全体を必要とする場合、調停機構は、スライス部分ごとに１つのコマンドを有する、また、バンク部分ごとに１つのアドレスを有するアクセス・ベクトルを生成する。アクセス・ベクトルは、適切なメモリ・コントローラに送付され、データがメモリから抽出される。
【００４１】
本明細書で説明したように、メモリ中の各バッファは６４バイトを有し、４つのクワッドワードＡ、Ｂ、Ｃ、Ｄに分割され、各クワッドワードはそれぞれ１６バイトを有する。送信装置コントローラが、いずれかのメモリアクセスにおいて４未満のクワッドワードを必要とする場合、未使用の分のクワッドワードは、ＥＰＣコントローラに与えられる。書込みの要求は、受信コントローラおよびＥＰＣコントローラによって発行される。読出し要求と同様に、すべての書込み要求は、４クワッドワードの情報がメモリ・コントローラに送付されることを必要とする。受信装置コントローラが、４未満のクワッドワードを書き込む場合、未使用のクワッドワードは、ＥＰＣコントローラに割り当てられる。したがって、メモリへのすべてのアクセスが、４クワッドワード、６４バイトのデータの書込みまたは読出しを行う。そうすることによって、無駄なサイクルがなく、最大限のメモリ帯域幅が利用される。
【００４２】
図３をさらに参照すると、メモリ調停機構は、メモリシステム２１と、送信装置コントローラ２２と、ＥＰＣコントローラ３０と、送信装置コントローラ３６とを相互接続するバス構造４０を含む。受信装置コントローラ２２は、メモリ調停機構をスイッチまたはライン・インタフェースにインタフェースする。ＥＰＣコントローラ・インタフェースは、調停機構をＥＰＣチップ（図１）にインタフェースする。送信装置コントローラ３６は、メモリ調停機構をＤａｔａ＿ｏｕｔバス（図２）にインタフェースする。調停機構は、メモリ調停機構コントローラ４２を含み、これは、図示したそれぞれの要求を受け取ってアクセス・ベクトルを生成し、このベクトルは、メモリシステム内の個々のスライスにアクセスするために、それぞれのコントローラに供給される。メモリ調停機構による調停は、１１個のサイクル・ウィンドウ（１サイクル＝６ｎｓ）で行われる。アクセス・ウィンドウの開始時点において、メモリ調停機構は、次のウィンドウでスケジュールすべき以下の入力（要求）を受け取る。
【００４３】
送信装置コントローラ要求は、読み込むバッファのＢＣＢアドレスによって表される。ＲＦフラグは、バッファを解放できるかどうかを示し、クワッドワード・マスクは、各ＢＣＢＡアドレスを補完する。このバッファ内部のどのクワッドワードが有効に読み出されるかを示すクワッドワード・マスクにより、メモリ調停機構が未使用のクワッドワードへのアクセスをＥＰＣからのアクセスで補完することが可能になる。本発明の好適な実施形態では、０、１、２、または３個の要求を、１つのメモリアクセス・ウィンドウにおいて送信装置コントローラから出すことができる。それぞれの要求を、送信装置コントローラ３６をメモリ調停機構コントローラ４２と相互接続する矢印で示す。矢印の向きは、要求が流れる方向を示す。
【００４４】
受信装置コントローラ要求は、スライス除外マスクおよび２つのクワッドワード・マスクによって表される。２つのクワッドワード・マスクは、間接的に、１つの要求について好適にはいくつのバッファを配置する必要があるか（たとえば、クワッドワード・マスクの１つが「００００」であれば、１つのバッファだけを割り振るという意味である）を示し、また、異なるバッファ内でどのメモリ・バンク（クワッドワード）を使用すべきかを示す。先に述べたように、受信装置２２は、メモリにアクセスするための２番目に高い優先順位を有する。受信装置コントローラに許される要求は、受信装置コントローラから出てメモリ調停機構コントローラ４２に至る矢印で示す。
【００４５】
ＥＰＣコントローラ要求は、１スライスごと、１アクションごと、１クワッドワードごとの待ち行列によって表される。メモリ調停機構は、個々のクワッドワード要求の重みに従って、残っているスライスをすべて割り当てなければならない。この重みは、６ビットの値で表されるクワッドワード要求のエージに比例する。さらに、メモリ調停機構は、ＥＰＣ要求待ち行列作成システムから、対応するクワッドワードのアクセス要求を読み出すことによって、送信装置および受信装置のアクセスを補完することができる。本発明の好適な実施形態では、１つのメモリアクセス・ウィンドウにおいてＥＰＣに与えられるクワッドワード・アクセスの最大数は、８つの読出しおよび８つの書込みクワッドワードに限定される。片方向矢印は、ＥＰＣコントローラおよびメモリ調停機構コントローラ４２から渡される情報の流れを示す。
【００４６】
図３をさらに参照すると、メモリ調停機構コントローラ４２は、それぞれの要求側（受信装置コントローラ２２、送信コントローラ３６、ＥＰＣコントローラ３０）から要求を受け取り、アクセス・ベクトルを生成する。このベクトルは、適切なスライス・コントローラ（Ｃｔｒｌ）へ送付され、コントローラは、選択したスライス中のバッファから情報を読み出し、またはそこへ情報を書き込む。受信装置コントローラにも送信装置コントローラにも利用されない余分の帯域幅は、ＥＰＣコントローラに割り当てられる。その結果、メモリへのすべてのアクセスがメモリ帯域幅全体を利用する。要求側からの入力に基づいて、メモリ調停機構コントローラ４２は、次のウィンドウのためのバッファ・メモリアクセス・ベクトルを構築するために、以下のスライス選択アルゴリズムを実施する。
・（各ＤＲＡＭコントローラによって指示される）リフレッシュ・サイクルに合わせてスケジュールされたスライスを除外する
・送信装置コントローラのすべてのＲ（読出し）要求用にスライスを割り当てる
・対応するＥＰＣ待ち行列（スライス：クワッドワード）からのＲアクセスを補完する
・全域がＷ（書込み）除外されたスライス（受信装置からのすべてのスライス除外規則によって除外されたスライス）について、ＥＰＣにスライスを割り当てる
・最後に割り当てられたスライス（直前のウィンドウにおいて受信装置コントローラに割り当てられたスライス）から始まる非除外スライス間のスライスを、Ｗ要求にＲＲ（ラウンドロビン）方式で割り当てる
・対応するＥＰＣ待ち行列（スライス：クワッドワード）からのＥＰＣアクセスによって、Ｗアクセスを補完する
・重みによって表される優先順位に従って、ＥＰＣ要求にスライスを割り当てる。
【００４７】
スライス選択アルゴリズムは、論理ハードウェアで実装することができ、あるいは、ピコプロセッサ内で稼動するマイクロコードとしてコード化することもできる。上記選択アルゴリズムを実装するためのハードウェア論理またはピココードのどちらを選択するかは、設計上の好みであり、上に挙げたアルゴリズムが与えられていれば、当業者の技量の範囲内である。
【００４８】
ここで図７に移ると、メモリ調停機構の代替実施形態を示してある。代替のメモリ調停機構は、要求レジスタＡ、Ｂ、Ｃと、優先順位テーブル４４とに接続されたメモリ調停機構・コントローラ（ＣＴＲＬ）４２を含む。要求レジスタは、それぞれの要求側からの要求を格納する。要求レジスタＡは、送信装置（ＸＭＩＴ）コントローラからの要求を格納し、要求レジスタＢは、受信装置（ＲＥＣＶ）コントローラからの要求を格納し、レジスタＣは、ＥＰＣコントローラからの要求を格納する。優先順位テーブル４４は、要求側のそれぞれに対する優先順位指定を格納する。すなわち、最も高い優先順位を有する送信装置コントローラは１であり、受信装置コントローラは次に高い優先順位２であり、最も低い優先順位を有するＥＰＣコントローラは３である。動作において、メモリ調停機構コントローラは、上記の選択アルゴリズムに従って設計され、レジスタ内の情報を優先順位レベルと併せて使用してメモリ・ベクトルを生成する。
【００４９】
図４、５および６は、好適な実施形態に従って本発明をさらに説明する例を示す。図に、データがメモリから抽出または読み出される際のメモリ帯域幅全体を利用する特徴を示す。メモリ内のデータは、以前の書込みサイクルにおいて書き込まれている。
【００５０】
図４は、送信装置コントローラが帯域幅全体を使用する、読み出し要求を示す機能ブロック図である。上述したように、送信装置コントローラは、メモリからのデータ読出しに関して、最も高い優先順位を有する。図に、メモリ５１、タイミング表示４８、メモリ調停機構コントローラ４２、および準備領域４６を示す。メモリ５１は、スライスと呼ばれる組として配列された複数のバッファを含む。図に、スライス０、１、２、３および４を示す。ただし、これを限定と解釈すべきではない。それより多くのまたは少ないスライスを使用することもできるからである。さらに、各スライス内には、（１、２および３で示す）３つのバッファを示してある。ただし、これは一例であって、限定と解釈すべきではない。スライス内で使用するバッファの数は、設計者の選択によって決定される。したがって、スライス内のバッファの数はＮであり、Ｎは設計者の選択によって決定する任意の数でよい。上述したように、バッファのそれぞれは６４バイトであり、クワッドワードＡ、Ｂ、ＣおよびＤと呼ばれるセクタに分割される。各クワッドワードはそれぞれ１６バイトである。各スライスは、Ｎ個のバッファに分割されたＤＤＲ  ＤＲＡＭモジュールから製作される。バッファ１中に示す数字は、スライス１バッファ１がクワッドワード３、４、１および２を含むデータで充填されていることを意味する。同様に、スライス３、バッファ１は、クワッドワード８、５、６および７を含むデータで充填されている。各クワッドワードは、ダブル・ワード（１６バイト）を格納する。他の細分性も選択できることに留意されたい。おそらく、このデータは、図１の受信コントローラ２２で受け取られており、より早い時点でメモリ５１にロードまたは書き込まれている。
【００５１】
図４をさらに参照すると、４８は、記憶装置から削除され再配列（循環）されたデータの転送タイミングのグラフィック表示である。このグラフィック表示は、クワッドワードＡ、Ｂ、ＣおよびＤ用のスペースを有する。メモリアクセスは、約６６ナノ秒の１１サイクルである。各メモリ・サイクルでは、異なるメモリ・スライス内の２つのバッファに同時にアクセスすることができる。メモリ調停機構４２は、上で説明したので詳細については繰り返さない。メモリ調停機構は、送信コントローラおよびＥＰＣからの要求を受け取り、要求された情報をメモリ５１から抽出できるように要求を配列すると言うだけで十分であろう。
【００５２】
図４をさらに参照すると、準備領域４６は、送信装置コントローラ３６（図２）の要求時に記憶装置から削除されるデータの管理に必要な資源を含む。準備領域４６は、ポート制御ブロック（ＰＣＢ）、ＴＰ０、ＴＰ１、ＴＰ２、ＴＰ３、ＴＰ４．．．ＴＰＮで示す一組のターゲットポート・バッファを含む。ＴＰ（ターゲットポート）バッファの数は、設計者が決定する。したがって、５と示しているのは限定と解釈すべきではない。閉じた矢印のラベルＲＲは、バッファを時計回り方向で充填またはサービスする、ラウンドロビン手順を示す。ＰＣＢは、準備領域内のバッファの一覧を含む。図に示す例では、６４個のＰＣＢがある。ＰＣＢはまた、メモリから抽出すべき次のスライスを含む。図を参照すると、スライス１および３が、削除されてターゲットポート・バッファにロードされるものである。このバッファ内の情報は、その後ポート０を介してdata_out線１（図２）上を移送される。各ターゲットポート・バッファはそれぞれ、１２８バイト（８クワッドワード）を含む。
【００５３】
図４をさらに参照すると、動作の際、送信装置コントローラは、メモリのスライス１、バッファ１、およびスライス３、バッファ１内の情報をターゲットポート・バッファ０に読み出してロードするよう求める要求を、メモリ調停機構コントローラに出す。ＥＰＣの読出し要求もまたメモリ調停機構コントローラ４２に提示される。送信装置コントローラによる要求がバッファ２つ分の伝送を必要とするので、このメモリ読出しサイクルの間は、ＥＰＣからの読出し動作の要求を調整する余地はない。要求はスライス１および３に対するものなので、両方の情報を同時に読み出し、ステージング領域４８に再配列し、かつＴＰバッファ０に移送することができ、それが、その後ポート０を介して伝送されることに留意されたい。ステージング領域４８からの情報は、正しい順序でＴＰバッファ０に読み出される。要するに、図４は、送信コントローラがメモリにアクセスし、帯域幅全部を利用する場合を示している。この場合、ＥＰＣは、このアクセス・ウィンドウの間はメモリへのアクセス権をもたない。送信装置コントローラは、バッファ２つ分（１つはスライス１から、１つはスライス３から）を受け取り、このデータをターゲットポート・バッファ０（ＴＰ０）内の待ち行列に登録している。
【００５４】
書込み動作の場合も、図４の説明が同様に当てはまるが、書込みではデータは逆方向に流れる。したがって、書込み動作についてこれ以上は説明しない。
【００５５】
図５は、メモリアクセスを最適化するために、同じスライスの異なるバッファがアクセスされ、異なるＦＩＦＯポート・バッファに分配される例を示す。図を見ればわかるように、メモリ５１に格納されたデータのパターンを除けば、図５の構造は、上で説明した図４と実質的に同様である。したがって、図５で追加される特徴だけを詳しく述べる。メモリ５１に関しては、情報は、スライス１、バッファ１、クワッドワードＣ、Ｄと、スライス１、バッファ２、クワッドワードＡ、Ｂ、Ｃ、Ｄと、スライス２、バッファ１、クワッドワードＡ、Ｄと、スライス２、バッファ３、クワッドワードＢ、Ｃ、Ｄとにロードされる。クワッドワードは、それぞれの数字で識別される。ＰＣＢ内の情報は、スライス１、バッファ１にあるデータがＴＰバッファ０にロードされることを示す。同様に、スライス２、バッファ１にあるデータは、ＴＰ１にロードされる。メモリから当該のＴＰバッファに移動するデータに関して完全で正確な命令を与えるために、ＰＣＢが追加情報を必要とし得ることに留意されたい。説明をあまり複雑にしないために、追加情報については省略がされているが、本開示は当業者が追加情報を提供できるようにするのに十分である。
【００５６】
送信装置の要求は、（ＴＰのどれに関しても）データのメモリ帯域幅全体よりも少ないものなので、メモリ帯域幅のクワッドワード全体が各メモリ・サイクルで読み出され、ＴＰに再分配される。
【００５７】
図５をさらに参照すると、バッファ１については、スライスＣおよびＤだけが送信装置コントローラによってＴＰバッファ０用に要求され、ＡおよびＢは未使用であり、バッファ２からのスライス４および１でＴＰ２用に充填される。同様に、スライス２、バッファ１については、クワッドワードＡおよびＤだけが送信装置コントローラによってＴＰバッファ１用に使用される。したがって、未使用のクワッドワードＢはスライス２、バッファ２からの「２」で示すデータで充填され、クワッドワードＣはバッファ３からの「２」で示すデータで充填される。データは、ステージング領域およびそれぞれのターゲットポートＦＩＦＯバッファ内に、図に示す数字によって配列される。メモリ５１からそれぞれのＴＰバッファへのデータの移動は、当該の片方向矢印で示される。例として、矢印５２は、クワッドワード１、２、スライス１が順次ＴＰ０に配列されることを示し、矢印５４は、クワッドワード１、２、スライス２が順次ＴＰ１に配置されることを示し、矢印５６は、クワッドワード１、４、スライス２が順次ＴＰ２に配置されることを示し、矢印５８は、クワッドワード２、バッファ２、スライス２がＴＰ３に配置されることを示し、矢印６０は、クワッドワード２、バッファ２がＴＰ４に配置されることを示す。
【００５８】
図５では、データが異なるＴＰ  ＦＩＦＯ（ターゲットポート先入れ先出し）バッファに分配されても、各メモリサイクルにおいて全部のメモリ帯域幅が使用されることに留意されたい。
【００５９】
図６に移ると、送信装置コントローラからのメモリ要求がメモリ帯域幅全体よりも少ないものであり、かつスライス２の未使用のクワッドワードがクワッドワード「２」、バッファ３で充填されて矢印６２を介してＥＰＣにＲＲ（ラウンドロビン）方式で送付される状況を示す概略図が示してある。図６のそれ以外の部分は、図５と実質的に同様で、図５の説明が当てはまり、参照によって組み込まれる。
【００６０】
図８は、送信装置コントローラ、受信装置コントローラ、またはＥＰＣにメモリアクセスを認可するのに使用するアルゴリズムの流れ図を示す。このアルゴリズムは、ステップＡ〜ステップＧで示す処理ステップを含む。ステップＡは、すべてのスライス（Ｓ＝０〜Ｎ、Ｎはシステム内のスライスの総数。たとえば、本実施形態ではＳは０〜５で示す）に関連するグローバルなステップである。要するに、ステップＡは、情報の書込みまたは読出しに対するスライスの資格を判定する。スライスがリフレッシュを必要としないのであれば、割当てに対する資格がある。ステップＢおよびＣは、送信コントローラが実施する読出し動作に関連し、ステップＤ〜Ｇは、受信コントローラが実施する書込み動作に関連する。ＥＰＣは、書込みまたは読出しのいずれかを実施することができ、かつ読出しルーチンまたは書込みルーチンのいずれかと関連づけることができる。
【００６１】
図８をさらに参照すると、ステップＢは、要求されたスライス数Ｒをメモリから読み出すためのアクセスを、送信コントローラに認可する。Ｒは、１〜最大数であり得る。本出願に示す実施形態では、Ｒは３に設定される。もちろん、設計者の選択によっては、他の値のＲを使用することもできる。ステップＣは、読出し要求における未使用のクワッドワードをＥＰＣに与えることによって、読出し動作を補完する。別の言い方をすると、読出し要求がすべてのクワッドワードを使用するのではない場合に、未使用のものをＥＰＣに割り当てる。ＥＰＣは、メモリに至るためのいくつかの読出し要求を有することができる。したがって、アルゴリズムは、ラウンドロビン方式でＥＰＣに読み出し要求を割り当てる。
【００６２】
図８をさらに参照すると、書込み要求は、ステップＤ〜Ｇで制御され、受信コントローラまたはＥＰＣによって実施される。ステップＤで、受信コントローラは、同じフレームの隣接する部分は同じスライスに書き込むことができないという原理に基づいている。このことは、隣接する情報がメモリの様々なスライスに広がることを意味する。したがって、メモリ内の特定のスライスは、書込みに対する資格がない。ステップＤで、受信装置コントローラは、これらの書き込むことができないスライスを識別する。ステップＤで、１〜最大値であり得るＸ個だけ、スライスが識別される。ステップＥで、アルゴリズムは、書込み用に要求された、ステップＤで識別されたＸ個のスライスに配置された、ただしステップＢでは配置されなかった資格のあるスライスを、ＥＰＣに与える。ステップＥで、ＸはステップＤで除外されたスライスを表し、ＲはステップＢでの読出しに使用されるスライスを表す。
【００６３】
ステップＦで、アルゴリズムは、受信コントローラが要求したスライスをラウンドロビン方式で与える。受信コントローラは１より大きいＮ個のスライスを要求することができるので、ラウンドロビン割当てが必要である。受信コントローラが、ステップＤで除外されたスライスを求めることはないことに留意されたい。さらに、受信コントローラに与えられたスライスは、読出し（Ｒ）用に与えられなかったものである。ステップＧで、受信コントローラが書込みに使用しないクワッドワードがＥＰＣに与えられる。ＥＰＣは複数の書込み要求を行うことができるので、ラウンドロビン方式でクワッドワードが与えられる。
【図面の簡単な説明】
【００６４】
【図１】本発明の好適な実施形態が使用されるネットワークプロセッサを示すブロック図である。
【図２】本発明の好適な実施形態の教示によるネットワークプロセッサ要求側およびメモリシステムを示すブロック図である。
【図３】本発明の好適な実施形態の教示によるメモリ調停機構を示すブロック図である。
【図４】本発明の好適な実施形態による、送信装置コントローラが帯域幅全体を使用する読出し要求を示す機能ブロック図である。
【図５】本発明の好適な実施形態による、同じスライスからの異なるバッファがアクセスされ、異なるターゲットポート（ＴＰ）ＦＩＦＯバッファに割り当てられる、読出し要求を示す機能ブロック図である。この図は、本発明の実施形態による、データが逆方向に流れる書込み要求を示すのにも使用することができる。
【図６】本発明の好適な実施形態による、異なるスライスからの異なるバッファがアクセスされ、１つのクワッドワードがＥＰＣコントローラに割り振られる、読出し要求を示す機能ブロック図である。
【図７】メモリ調停機構の代替実施形態を示す図である。
【図８】本発明の実施形態による、書込みまたは読出し操作において使用されるアルゴリズムを示す流れ図である。
【図１】
2004523853.tif 000003
【図２】
2004523853.tif 000004
【図３】
2004523853.tif 000005
【図４】
2004523853.tif 000006
【図５】
2004523853.tif 000007
【図６】
2004523853.tif 000008
【図７】
2004523853.tif 000009
【図８】
2004523853.tif 000010
【国際公開パンフレット】
2004523853.tif 000011
2004523853.tif 000012
2004523853.tif 000013
2004523853.tif 000014
2004523853.tif 000015
2004523853.tif 000016
2004523853.tif 000017
2004523853.tif 000018
2004523853.tif 000019
2004523853.tif 000020
2004523853.tif 000021
2004523853.tif 000022
2004523853.tif 000023
2004523853.tif 000024
2004523853.tif 000025
2004523853.tif 000026
2004523853.tif 000027
2004523853.tif 000028
2004523853.tif 000029
2004523853.tif 000030
2004523853.tif 000031
2004523853.tif 000032
2004523853.tif 000033
2004523853.tif 000034
2004523853.tif 000035
2004523853.tif 000036
2004523853.tif 000037
2004523853.tif 000038
2004523853.tif 000039
2004523853.tif 000040
【国際公開パンフレット（コレクトバージョン）】
2004523853.tif 000041
2004523853.tif 000042
【国際調査報告】
2004523853.tif 000043
2004523853.tif 000044
2004523853.tif 000045