JP3880520B2 - ネットワーク・プロセッサにおけるパケット記述子フィールド位置の割当て - Google Patents

ネットワーク・プロセッサにおけるパケット記述子フィールド位置の割当て Download PDF

Info

Publication number
JP3880520B2
JP3880520B2 JP2002568568A JP2002568568A JP3880520B2 JP 3880520 B2 JP3880520 B2 JP 3880520B2 JP 2002568568 A JP2002568568 A JP 2002568568A JP 2002568568 A JP2002568568 A JP 2002568568A JP 3880520 B2 JP3880520 B2 JP 3880520B2
Authority
JP
Japan
Prior art keywords
fcb
memory
frame
control block
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002568568A
Other languages
English (en)
Other versions
JP2004530323A (ja
Inventor
カルビンナック、ジーン、ルイス
ヘッデス、マルコ
ローガン、ジョゼフ、フランクリン
ヴェルプランケン、ファブリス、ジーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004530323A publication Critical patent/JP2004530323A/ja
Application granted granted Critical
Publication of JP3880520B2 publication Critical patent/JP3880520B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Liquid Developers In Electrophotography (AREA)
  • Glass Compositions (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、ネットワーキング通信システムに関し、より詳細には、メモリに対するアクセスの回数を最小限に抑えることに関する。
パケット交換網は、ネットワークに接続された送信側と受信側の間でデータを伝送するためのスイッチング・ポイントまたはスイッチング・ノードを有する。このスイッチング・ポイントによって行われるスイッチングは、実際には、スイッチング・ポイントまたはスイッチング・ノードによって受信されたデータのパケット、つまり「フレーム」をネットワーク内のさらなるノードに転送する動作である。そのようなスイッチング動作は、通信データがパケット交換網を介して運ばれる手段である。
各ノードは、パケット、つまりデータ・フレームを処理するように構成されたパケット・プロセッサを含む。データの各フレームは、データの関連するフレームを記述するように構成されたフレーム制御ブロック(FCB)に関連することが可能である。通常、FCBは、パケット・プロセッサ内部のメモリによって、例えば、4倍データ転送速度(Quadruple Data Rate)スタティック・ランダム・アクセス・メモリ(QDR SRAM)によって供給される様々な情報フィールドを含む。つまり、FCBの中の情報フィールドは、パケット・プロセッサ内部のメモリに、例えば、QDR SRAMにアクセスすることによって獲得される。
したがって、情報を必要とするフィールド制御ブロックの中のフィールドの数を制限して、これにより、メモリ・アクセスの回数を減らし、メモリ空間の効率、すなわち、メモリの帯域幅の効率を向上させることが望ましい。
欧州特許出願EP 0797 335 A2が、送信データおよび受信データが、ネットワーク上に存在するシステムの第1のメモリおよび第2のメモリの中で定義されたバッファ領域の中に記憶されるネットワーク・アダプタを開示している。バッファ領域は、やはりそのメモリの中に記憶される複数の記述子リングによってポイントされる。2つのメモリは、プロセッサを含む共通バスに接続された別々のバス上に存在する。プロセッサは、ハンドシェーク・プロトコルを使用してメモリの一方、または他方と通信する。システムに着信する受信データは、フレームによって、例えば、フレーム制御フィールドの中で搬送される特性コードに応じて、複数の記述子の間に分散される。その他の記述子より小さい第1の記述子のサイズは、各フレームのヘッダのサイズに対応するようにプログラミングされる。フレームのヘッダとデータの間の同期は、各記述子の中に記憶されたフレーム数によって維持される。別の態様は、ブロックされた受信記述子リングが生じたときに、受信パスのブロッキングを防止する。
欧州特許出願第0797 335 A2号 米国出願第09/791,336号(整理番号RAL000095の同時係属PCT出願) 米国出願第09/792,557号 米国出願第09/792,533号
本発明は、第1のメモリに関連することが可能な第1の制御ブロック、および第2のメモリに関連することが可能な第2の制御ブロックとして表わされる論理上のフィールド制御ブロック(FCB)を提供する。各メモリ、すなわち、第1のメモリおよび第2のメモリは、それぞれ、パケット・プロセッサのデータ・フロー部およびスケジューラにさらに関連することが可能である。パケット・プロセッサのデータ・フロー部は、データ・フレームを受信し、伝送するように構成されることが可能である。パケット・プロセッサのスケジューラは、パケット交換網内の別のスイッチ、または別のポートに伝送されるべきデータ・フレームをスケジュールするように構成されることが可能である。FCBが、データ・フロー部内部の待ち行列の中に存在するとき、情報は、第2の制御ブロックのフィールドの中にではなく、第1の制御ブロックのフィールドの中に記憶されることが可能である。第2の制御ブロックのフィールドから読取りを行う/第2の制御ブロックのフィールドに書込みを行うのに、第2のメモリへのアクセスは行われないため、これにより、第2のメモリの帯域幅の効率が向上する。FCBが、スケジューラ内部の待ち行列の中に存在するとき、情報は、第1の制御ブロックのフィールドの中にではなく、第2の制御ブロックのフィールドの中に記憶されることが可能である。第1の制御ブロックのフィールドから読取りを行う/第1の制御ブロックのフィールドに書込みを行うのに、第1のメモリへのアクセスは行われないので、これにより、第1のメモリの帯域幅の効率が向上する。
一態様によれば、本発明は、関連するフレーム制御ブロックをそれぞれが有し、第1の制御ブロックおよび第2の制御ブロックをそれぞれが含むデータ・フレームを受信し、伝送するように構成されたデータ・フロー部と、前記フレーム制御ブロックの前記第1の制御ブロックに関するフィールド情報を記憶する第1のフレーム・バッファ制御部を含む、前記データ・フロー部に結合された第1のメモリと、前記データ・フロー部によって受信されたデータ・フレームをスケジュール設定するように構成され、前記フレーム制御ブロックの前記第2の制御ブロックに関するフィールド情報を記憶する第2のフレーム・バッファ制御部を含む第2のメモリを含む、前記データ・フロー部に結合されたスケジューラとを含む、前記データ・フレームを処理するように構成されたプロセッサを含むシステムを提供する。
好ましくは、データ・フロー部は、前記フレーム制御ブロックの1つまたは複数がいずれかの中に存在する複数の待ち行列を含む。好ましい実施形態では、前記データ・フロー部の前記複数の待ち行列の1つの中に存在する1つまたは複数の前記フレーム制御ブロックの前記第1の制御ブロックのフィールドの中の情報は、前記第1のメモリの前記第1のフレーム・バッファ制御部の中に記憶される。
適切には、スケジューラは、1つまたは複数の前記フレーム制御ブロックが中に存在する第1の待ち行列を含む。より適切には、前記第1の待ち行列の中に存在する1つまたは複数の前記フレーム制御ブロックの前記第2の制御ブロックのフィールドの中の情報は、前記第2のメモリの前記第2のフレーム・バッファ制御部の中に記憶される。
別の態様では、本発明は、フレーム制御ブロックの中のフィールド情報を獲得するメモリ・アクセスの回数を減らすための方法であって、前記フレーム制御ブロックのそれぞれが第1の制御ブロックおよび第2の制御ブロックを含み、第1のフレーム・バッファ制御部が前記フレーム制御ブロックの前記第1の制御ブロックに関するフィールド情報を記憶し、データ・フロー部に関連する第1のメモリ(210)が前記第1のフレーム・バッファ制御部を記憶し、第2のフレーム・バッファ制御部が前記フレーム制御ブロックの前記第2の制御ブロックに関するフィールド情報を記憶し、スケジューラに関連する第2のメモリ(224)が前記第2のフレーム・バッファ制御部を記憶し、前記方法は、前記第1のメモリにアクセスして、1つまたは複数の前記フレーム制御ブロックの前記第1の制御ブロックのフィールドの中の情報の読取り、または書込みを行うステップと、前記第2のメモリにアクセスして、1つまたは複数の前記フレーム制御ブロックの前記第2の制御ブロックのフィールドの中の情報の読取り、または書込みを行うステップとを含む方法を提供する。
好ましくは、1つまたは複数の前記フレーム制御ブロックは、前記第1のメモリに関連するデータ・フロー部内部の複数の待ち行列の1つの中に存在する。より好ましくは、前記1つまたは複数のフレーム制御ブロックが前記データ・フロー部内部の前記複数の待ち行列の1つの中に存在するとき、1つまたは複数の前記フレーム制御ブロックの前記第1の制御ブロックのフィールドの中の情報の読取り、または書込みを行うのに、第1のメモリにアクセスが行われる。さらにより好ましくは、1つまたは複数の前記フレーム制御ブロックは、前記第2のメモリに関連するスケジューラ内部の待ち行列の中に存在する。適切には、前記1つまたは複数のフレーム制御ブロックが前記スケジューラ内部の前記待ち行列の中に存在するとき、1つまたは複数の前記フレーム制御ブロックの前記第2の制御ブロックのフィールドの中の情報の読取り、または書込みを行うのに、第2のメモリにアクセスが行われる。
さらに別の態様によれば、本発明は、プログラムがコンピュータ上で実行されたとき、前述した方法のステップを行うように適合されたプログラム・コード手段を含むコンピュータ・プログラム製品を提供する。
次に、本発明を、例としてのみ、添付の図面に例示する本発明の好ましい実施形態を参照して説明する。
本発明は、フレーム制御ブロックの中の所望のフィールド情報を得るメモリへのアクセスの回数を減らすための方法およびシステムを提供する。本発明の一実施形態では、システムが、データ・フレームを処理するように構成されたプロセッサを含む。プロセッサは、関連するフレーム制御ブロックをそれぞれが有することが可能なデータ・フレームを受信し、伝送するように構成されたデータ・フロー部を含むことが可能である。各フレーム制御ブロックは、第1の制御ブロック、および第2の制御ブロックを含むことが可能である。プロセッサは、第1のフレーム・バッファ制御部を含む、データ・フロー部に結合された第1のメモリをさらに含むことが可能である。第1のフレーム・バッファ制御部は、フレーム制御ブロックの第1の制御ブロックに関するフィールド情報を記憶することが可能である。プロセッサは、データ・フロー部によって受信されたデータ・フレームをスケジュール設定するように構成されることが可能な、データ・フロー部に結合されたスケジューラをさらに含むことが可能である。スケジューラは、第2のフレーム・バッファ制御部を含む第2のメモを含むことが可能である。第2のフレーム・バッファ制御部は、フレーム制御ブロックの第2の制御ブロックに関するフィールド情報を記憶することが可能である。フレーム制御ブロックがデータ・フロー部内部の待ち行列の中に存在するとき、情報は、第2の制御ブロックのフィールドの中にではなく、第1の制御ブロックのフィールドの中に記憶されることが可能である。第2の制御ブロックの中のフィールドから読取りを行う/第2の制御ブロックの中のフィールドに書込みを行うように第2のメモリに対するアクセスが行われないため、これにより、第2のメモリの帯域幅の効率が向上する。フレーム制御ブロックがスケジューラ内部の待ち行列の中に存在するとき、情報は、第1の制御ブロックのフィールドの中にではなく、第2の制御ブロックのフィールドの中に記憶されることが可能である。第1の制御ブロックの中のフィールドから読取りを行い/第1の制御ブロックの中のフィールドに書込みを行うように第1のメモリに対するアクセスが行われないため、これにより、第2のメモリの帯域幅の効率が向上する。
図1は、パケット・プロセッサ100を示している。パケット・プロセッサ100は、パケット交換網の特定のスイッチ(図示せず)、または特定のポート(図示せず)からデータのデジタル・パケット、すなわち、フレームを受信し、データのデジタル・パケット、すなわち、フレームをパケット交換網内の別のスイッチ、またはポートに、例えば、スイッチ/ポート120に伝送するように構成されたデータ・フロー部110を含むことが可能である。各データ・フレームは、関連するデータ・フレームを記述するフレーム制御ブロック(FCB)に関連することが可能である。データ・フレームに関連する各FCBは、1つまたは複数のバッファ制御ブロック(BCB)に関連することが可能であり、FCBに関連する各BCBは、データ記憶部140内部のバッファに関連することが可能である。BCBは、米国出願第09/791,336号(整理番号RAL000095の同時係属PCT出願)に記載されるとおり、次の連鎖するBCBに関連するバッファを記述するように構成されることが可能である。一実施形態では、データ・フロー部110は、集積回路上に、すなわち、集積チップ上に存在することが可能である。データ・フロー部110は、パケット交換網内のスイッチ(図示せず)、またはポート(図示せず)からデータ・フロー部110によって受信されたデータ・フレームを一時的に記憶するように構成されたデータ記憶部140に結合されることが可能である。データ・フロー部110は、データ・フロー部110からスイッチ/ポート120に伝送されるデータ・フレームをスケジュール設定するように構成されたスケジューラ130にさらに結合されることが可能である。一実施形態では、スケジューラ130は、集積回路上、すなわち、集積チップ上に存在することが可能である。さらに、データ・フロー部110は、データ・フロー部110によって受信されたデータ・フレームを処理するように構成された組込み型プロセッサ150にさらに結合されることが可能である。
図2は、データ・フロー部110をより詳細に示している。データ・フロー部110は、パケット交換網内のスイッチ(図示せず)またはポート(図示せず)から受信されたデータのパケット、すなわち、フレームを受け取り、一時的に記憶するように構成された受信機コントローラ203を含むことが可能である。データ・フロー部110は、フレーム・データを変更し、パケット交換網内のスイッチ(図示せず)またはポート(図示せず)に変更されたフレーム・データを伝送するように構成された送信機コントローラ201をさらに含むことが可能である。データ・フロー部110は、組み込み型プロセッサ150によって処理されるフレームを交換するように構成された組み込み型プロセッサ・インターフェース・コントローラ202をさらに含むことが可能である。
データのパケット、すなわち、フレームは、ポート/スイッチ・インターフェース部221によって受信されることが可能である。ポート/スイッチ・インターフェース部221は、データ・フロー部110がイグレス・モードで動作するとき、パケット交換網内のスイッチ(図示せず)からデータを受信することが可能である。そうでなく、データ・フロー部110がイングレス・モードで動作するとき、ポート/スティッチ・インターフェース部221は、パケット交換網に対するインターフェースとして動作するポート(図示せず)からデータを受信することが可能である。データ・フロー部110によって受信されたデータは、複数のスライス205AFによって代表されることが可能なデータ記憶部140の中に記憶されるのに先立って、受信準備エリア・メモリ220の中に一時的に記憶されることが可能である。スライス205AFは、全体として、または個々に、スライス群205またはスライス205と呼ぶことが可能である。図2におけるスライス205の数は、例示的なものであり、本発明によるデータ・フロー部110の実施形態は、他の所定の数のスライス205を有することが可能である。各スライスは、複数のバッファを含むことが可能である。各スライスは、メモリ・スライス、例えば、ダイナミック・ランダム・アクセス・メモリ(DRAM)を表わし、メモリ帯域幅を最大化するために、フレーム・データを異なるスライスにおける異なるバッファの中に書き込むことができるようになっていることが可能である。メモリ・アービタ204が、受信機コントローラ203、送信機コントローラ201、および組込み型プロセッサ・インターフェース・コントローラ202から要求、例えば、読取り要求、書込み要求を収集し、後に、特定のデータ・ストア・メモリ・スライスに対する、すなわち、特定のスライス205における特定のバッファに対するアクセスをスケジュール設定するように構成されることが可能である。例えば、受信機コントローラ203は、受信されたデータを特定のスライス205における個々のバッファに書き込むため、メモリ・アービタ204に書込み要求を発行するように構成されることが可能である。
前述したとおり、フレーム・データは、データ記憶部140の中に、すなわち、複数のスライス205の中に記憶されることが可能である。一実施形態では、フレーム・データは、バッファを一緒に連鎖させることにより、それぞれの特定のフレームの中のデータが再構成されることが可能であるように、1つまたは複数のスライス205における1つまたは複数のバッファの中に記憶されることが可能である。つまり、特定のフレームの中のデータが、1つまたは複数のバッファにそのデータが書き込まれた順序で、一緒に連鎖させられた1つまたは複数のバッファの中に記憶されることが可能である。1つまたは複数のバッファを連鎖させることは、データ・フロー部110に結合されたメモリ内部の、例えば、4倍データ転送速度スタティック・ランダム・アクセス・メモリ(QDR SRAM)内部のバッファ制御ブロック部(BCBU)208によって制御されることが可能である。BCBU208は、バッファにデータが書き込まれた順序で一緒に連鎖させられた1つまたは複数のバッファのそれぞれのアドレスを含むように構成されることが可能である。同じフレームのデータを含む異なるバッファは、BCBU208の中に記憶されたポインタを使用して一緒にリンクされることが可能である。
前述したとおり、データの各フレームは、関連するデータ・フレームを記述するフレーム制御ブロック(FCB)に関連することが可能である。メモリ210内部の、例えば、QDR SDRAM内部のフレーム制御ブロック部1(FCBU1)209が、FCBのフィールドの中に埋められる情報、例えば、フレーム制御情報を記憶するように構成されることが可能である。つまり、FCBの中の情報のフィールドは、メモリ210に、すなわち、メモリ210のFCBU1 209にアクセスすることによって得ることが可能である。情報のフィールドを記憶するメモリ210のFCBU1 209に関するさらなる詳細については、図3の説明で述べる。
バッファの中に記憶されたフレーム・データは、処理されるべき各フレームのヘッダを組込み型プロセッサ150に伝送することにより、組込み型プロセッサによって処理されることが可能である。前述したとおり、各データ・フレームは、FCBによって表わされることが可能である。このFCBは、G待ち行列(GQ)218の中に一時的に記憶されることが可能である。ディスパッチャ論理217が、次のFCBをGQ218から取り出すように構成されることが可能である。ディスパッチャ論理217は、次のFCBを取り出すと、読取り要求をメモリ・アービタ204に発行して、取り出されたFCBに関連するデータ記憶部140の中に記憶されたフレームの先頭における、すなわち、フレームのヘッダにおけるデータを読み取る。ディスパッチャ論理217によって読み取られたデータは、次に、組込み型プロセッサ150によって処理される。
フレーム・データが組込み型プロセッサ150によって処理されると、処理済みのフレーム・データは、処理済みのフレーム・データを1つまたは複数のスライス205における個々のバッファに書き込むようにメモリ・アービタ204に書込み要求を発行する組込み型プロセッサ論理216によって、データ記憶部140の中に、すなわち、スライス205の中に一時的に記憶されることが可能である。
フレーム・データが組込み型プロセッサ150によって処理されると、組込み型プロセッサ論理216が、処理済みのフレームに関連するFCBをスケジューラ130に対してさらに発行する。スケジューラ130は、FCBを記憶するように構成されたフロー待ち行列223を含むように構成されることが可能である。スケジューラ130は、メモリ224内部に、例えば、QDR SRAM内部に、FCBU1 209と同様に動作するように構成されたフレーム制御ブロック部2(FCBU2)225をさらに含むことが可能である。FCBU2 225は、FCBがフロー待ち行列223の中に一時的に存在しているとき、FCBのフィールドの中に埋められるべき情報を記憶するように構成されることが可能である。情報のフィールドを記憶するスケジューラ130のメモリ224内部のFCBU2 225に関するさらなる詳細については、図3の説明で述べている。スケジューラ130は、フロー待ち行列223の中に記憶されたFCBを、受信されたFCBをTBQ215の中に入れるように構成された目標ブレード待ち行列(TBQ)エンキュー論理227に伝送するように構成されることが可能である。
TBQ215の中に入れられたFCBは、TBQスケジューラ228によってTBQ215から取り出され、ポート制御ブロック(PCB)224の中にロードされるようにスケジュール設定されることが可能である。TBQスケジューラ228は、TBQ215から次のFCBを取り出し、そのFCBをPCB224の中で待ち行列に入れるように構成されることが可能である。次のFCBが、PCB224の中で待ち行列に入れられると、PCB224は、メモリ・アービタ204に対して読取り要求を発行して、待ち行列から出されたFCBに関連するデータ記憶部140の中に記憶されたフレームの先頭における、すなわち、フレームのヘッダにおけるデータを読み取ることができる。PCB224によって読み取られたデータは、パケット交換網内のスイッチ(図示せず)またはポート(図示せず)に処理済みのフレーム・データを伝送するのに先立って、データ準備エリア・メモリ214の中に一時的に記憶されることが可能である。PCB224は、それぞれの特定の読取り要求で、処理済みのフレームの中に記憶されたデータの一部分を読み取るように構成されることが可能であることを、明確にするために述べておく。つまり、処理済みのフレームの中に記憶されたデータ全体が、PCB224によって提供される複数の読取り要求で、読み取られることが可能である。処理済みのフレームの中に記憶されたデータ全体が読み取られると、データ記憶部140は、さらなるフレーム・データを記憶することができる。
送信機コントローラ201は、データ準備エリア・メモリ214の中に一時的に記憶された処理済みのフレームを変更するコマンドを受け取るように構成されたフレーム変更準備エリア・メモリ213をさらに含むことが可能である。このコマンドは、一般に、フレーム変更コマンドと呼ばれ、フレーム変更コマンドは、米国出願第09/792,557号により詳細に記載されるとおり、組込み型プロセッサ150によって発行されて、組込み型プロセッサ論理216によって特定のバッファの中の特定のバンクの中に記憶される。一実施形態では、PCB224が、特定のバッファの中の特定のバンクの中に記憶されたフレーム変更コマンドを取り出して、フレーム変更準備エリア・メモリ213の中に記憶するように構成されることが可能である。フレーム変更(FA)論理部212が、フレーム変更準備エリア・メモリ213の中に記憶されたコマンドを実行して、データ準備エリア・メモリ214の中に一時的に記憶された処理済みのフレームの内容を変更するように構成されることが可能である。FA論理212が処理済みのフレームの内容を変更すると、変更された処理済みのフレームが、次に、スイッチ/ポート・インターフェース部211を介して伝送されることが可能である。スイッチ/ポート・インターフェース部211は、データ・フロー部110がイグレス・モードで動作するとき、パケット交換網に対するインターフェースとして動作するポート(図示せず)にデータを伝送することが可能である。そうでなく、データ・フロー部110がイングレス・モードで動作するとき、スイッチ/ポート・インターフェース部211は、パケット交換網内のスイッチ(図示せず)にデータを伝送することが可能である。
データ・フロー部110は、送信機コントローラ201、組込み型プロセッサ・インターフェース・コントローラ202、および受信機コントローラ203からの、BCBU208に対して読取り、または書込みを行う相異なるBCB要求の間で仲裁をするように構成されたバッファ制御ブロック(BCB)アービタ207をさらに含むことが可能である。BCBアービタ207は、メモリ帯域幅を可能な限り効率的に利用するため、異なるアクセスをスケジュール設定するように構成されることが可能である。データ・フロー部110は、組込み型プロセッサ・インターフェース・コントローラ202、受信機コントローラ203、および送信機コントローラ201からの異なるFCBの間で仲裁を行って、FCBU1 209に対して読取り、または書込みを行うように構成されたフレーム制御ブロック(FCB)アービタ206をさらに含むことが可能である。
前述したとおり、各データ・フレームは、FCBに関連することが可能である。処理済みのフレームが、データ記憶部140から、例えば、DDR DRAMから読み取られ、処理済みのフレームが変更されて、パケット交換網内のスイッチ(図示せず)またはポート(図示せず)に伝送されると、その処理済みのフレームに関連するFCBは、特定のデータ・フレームを表わさなくなる。FCBが、もはやフレーム・データに関連しなくなると、そのFCBは、FCBアービタ206内部のFCB空き待ち行列222の中に記憶されることが可能である。FCB空き待ち行列222が、特定のフレーム・データにもはや関連していない複数のFCBを含むように構成されることが可能である。FCB空き待ち行列222は、特定のフレーム・データにもはや関連していない任意の数のFCBを含むことが可能であることに留意されたい。データ・フロー部110が、データのパケット、すなわち、フレームを受け取ると、受信機コントローラ203の再組立て制御ブロック(RCB)219が、FCB空き待ち行列222からの特定のFCBを受信されたデータ・フレームに関連付けることができ、次に、新たに関連付けられたFCBが、RCB219によってGQ218の中に入れられることが可能である。
前述したとおり、各データ・フレームは、FCBに関連することが可能である。データ・フレームに関連する各FCBは、1つまたは複数のBCBに関連することが可能であり、FCBに関連する各BCBは、データ記憶部140の特定のバッファに関連することが可能である。データ記憶部140のバッファの中に記憶された処理済みのフレーム・データが、送信機コントローラ201によって取り出され、後に、変更されて、パケット交換網内のスイッチ(図示せず)またはポート(図示せず)に伝送されると、もはや全くフレーム・データを含まない特定のバッファに関連するBCBが、全く有効な情報を含まなくなる。つまり、もはや全くフレーム・データを含まない特定のバッファに関連するBCBは、そのBCBに関連する特定のバッファが、もはや全くフレーム・データを含まないので、有用ではないデータを含む。BCBが、全く有効な情報を含まなくなると、すなわち、その特定のバッファの中のフレーム・データが伝送されると、そのBCBは、BCBアービタ206内部のBCB空き待ち行列226の中に記憶されることが可能である。BCB空き待ち行列226は、有効な情報を全く含まない複数のBCBを含むように構成されることが可能である。BCB空き待ち行列226は、全く有効な情報を含まない任意の数のBCBを含むことが可能であることに留意されたい。受信機コントローラ203が、データ記憶部140の特定のバッファに受信されたフレーム・データを書き込むと、受信機コントローラ203のRCB219が、受信されたデータ・フレームを記憶した特定のバッファに関連するBCB空き待ち行列226の中のその特定のBCBに有効な情報を書き込むことができる。
前述したとおり、FCBは、FCB空き待ち行列222の中に一時的に存在すること、またはその他の待ち行列、例えば、GQ218、フロー待ち行列223、TBQ215のいずれかの中に一時的に存在することが可能である。FCBが、最初に、FCB空き待ち行列222の中に記憶され、待ち行列を通して、例えば、GQ218、フロー待ち行列223、TBQ215を通して転送され、最後にFCB空き待ち行列222の中に入れられるFCBの「ライフ・サイクル」のより詳細な説明は、図3の説明で述べる。FCBは、FCBの「ライフ・サイクル」中にFCB空き待ち行列222から一時的に除去されることが可能であるため、FCB空き待ち行列222から「リース」されるという言い方をすることができる。待ち行列、例えば、GQ218、フロー待ち行列223、TBQ215、FCB空き待ち行列222のそれぞれは、1つまたは複数の異なるFCBを同時に含むことが可能であることに留意されたい。さらに、FCBは、「ライフ・サイクル」中、待ち行列、例えば、GQ218、フロー待ち行列223、TBQ215、FCB空き待ち行列222のそれぞれの中に一時的に存在することに留意されたい。
背景技術の情報セクションで述べたとおり、FCBは、パケット・プロセッサ100内部のメモリ210および224によって供給される情報の様々なフィールドを含む。つまり、FCBの中の情報のフィールドは、パケット・プロセッサ100内部のメモリ210に、例えば、QDR SRAMにアクセスすることによって得られる。したがって、以下に述べるとおり、情報を必要とするフィールド制御ブロックの中のフィールドの数を制限し、これにより、メモリ・アクセスの回数を減らし、メモリ210および224に課せられる帯域幅の要求を減らすことが望ましい。
図3は、フレーム制御ブロックの中の所望のフィールド情報を得るメモリに対する、例えば、メモリ210、メモリ224に対するアクセスの回数を減らし、これにより、メモリ、例えば、メモリ210、メモリ224の帯域幅の効率を向上させるための方法300の流れ図を示している。メモリ210は、データ・フロー部110に関連するメモリであり、他方、メモリ224は、スケジューラ130に関連するメモリである。
前述したとおり、各データ・フレームは、フレーム制御ブロック(FCB)に関連することが可能である。本発明の一実施形態では、2つのメモリ210および224が存在するので、論理FCBは、2つ異なる制御ブロックとして表わすことができる。例えば、基本FCB(BFCB)は、メモリ210に関連することが可能である。フローFCB(FFCB)は、メモリ224に関連することが可能である。以上の2つの異なる制御ブロック、すなわち、BFCBおよびFFCBは、同一のメモリ・アドレス、すなわち、物理メモリ・アドレスを共有することが可能であるが、この2つの異なる制御ブロックのフィールドの中で提供されるデータは、別々のメモリの中に、例えば、メモリ210、メモリ224の中に存在することが可能である。
ステップ301で、FCBアービタ206のFCB空き待ち行列222の中に存在するFCBが、RCB219によってFCB空き待ち行列222から取り出されることが可能である。図4は、FCB空き待ち行列222の中に存在するFCBのBFCB400のフィールドを示している。BFCB400は、それぞれが36ビットである2つのエントリまたは行を含むことが可能である。BFCB400は、任意のビット数を含む任意の数のフィールドおよび任意の数の行を含むことが可能であり、図4は、例示的なものであることに留意されたい。
FCB空き待ち行列222の中に存在するFCBのBFCB400は、2つのフィールド、例えば、NFA(次のFCBアドレス)およびECC(誤り訂正コード)を含むことが可能である。NFAフィールドは、次のFCBアドレスをポイントし、これにより、FCBを連鎖させることが可能になる。ECCフィールドは、米国出願第09/792,533号に記載されるとおり、誤り訂正コードのためのコードを含むことが可能である。
図5は、FCB空き待ち行列222の中に存在するFCBのFFCB500のフィールドを示している。FFCB500は、36ビットであるエントリまたは行を含むことが可能である。FFCB500は、任意のビット数を含む任意の数のフィールドおよび任意の数の行を含むことが可能であり、図5は、例示的なものであることに留意されたい。
FCB空き待ち行列222の中に存在するFCBのFFCB500は、2つのフィールド、例えば、NFA、FCBに関連する1つまたは複数のバッファのバイト・カウント(BCNT)とともに、パリティ・ビット(PTY)を含むことが可能である。NFAフィールドは、次のFCBアドレスに対するポインタを含むことが可能であり、これにより、FCB空き待ち行列222の中のFCBを連鎖させることが可能になる。BCNTフィールドは、FCBに関連する1つまたは複数のBCBのバイト・カウント長を含むことが可能である。ただし、メモリ224のFCBU2 225にアクセスして情報を取り出して、FCB空き待ち行列222の中に存在するFCBのFFCB500のフィールドの中に記憶することは行われない可能性がある。というのは、FCB空き待ち行列222の中に存在するFCBのFFCB500は、データ・フレームに関連していない可能性があるからである。つまり、FCB空き待ち行列222の中に存在するFCBのFFCB500のフィールドは、重要ではなく、したがって、FFCB500に関連するメモリ224のFCBU2 225にアクセスする必要は全くない。1つまたは複数のBCBとのFCBの関連、ならびにFCBのフィールドの中に記憶された情報に関するさらなる詳細は、米国出願番号09/791,336に記載されている。FCBの中のパリティ・ビットの詳細は、米国出願第09/792,533号で提供されている。
以下にさらに説明するとおり、FCB空き待ち行列222は、スケジューラ130によってではなく、データ・フロー部110によって扱われるため、情報は、FFCB500の中にではなく、BFCB400の中に記憶されることが可能である。したがって、FCB空き待ち行列222の中に存在するFCBのBFCB400の中のフィールドが、有効な情報を含み、他方、FCB空き待ち行列222の中に存在するFCBのFFCB500の中のフィールドが、無効な情報を含むことが可能である。
前述したとおり、データ・フロー部110が、パケット交換網内のスイッチ(図示せず)、またはパケット交換網に対するインターフェースとして動作するポート(図示せず)から、ポート/スイッチ・インターフェース部221を介してフレーム・データを受信したとき、ステップ301で、受信されたフレーム・データをFCBに関連付けるため、データ・フロー部110のRCB219によってFCB空き待ち行列222からFCBが取り出される。FCBは、RCB219が、FCB空き待ち行列222の中のFCBのBFCB400の中のフィールドNFAおよびECCに関する情報を取り出すように、メモリ210のFCBU1 209に対して読取り要求を発行することにより、FCB空き待ち行列222から取り出される。データ・フロー部110のRCB219は、メモリ224のFCBU2 225に対してではなく、メモリ210のFCBU1 209に対してだけ、読取り要求を発行することができる。というのは、メモリ210は、データ・フロー部110に関連し、メモリ224は、スケジューラ130に関連しているからである。したがって、RCB219は、FCB空き待ち行列222の中に存在するFCBのFFCB500のフィールド、例えば、NFA、BCNTに関する情報を取り出すのに、メモリ224のFCBU2 225にはアクセスしない。メモリ224にアクセスしないことにより、メモリ224の帯域幅の効率が向上する。
ステップ302で、FCB空き待ち行列222から取り出されたFCBが、RCB219によってGQ218の中に入れられることが可能である。図6は、GQ218の中に存在するFCBのBFCB600のフィールドを示している。BFCB600は、それぞれが36ビットである2つのエントリを含む。BFCB600は、任意のビット数を含む任意の数のエントリを含むことが可能であり、図6は、例示的なものであることに留意されたい。
GQ218の中に存在するFCBのBFCB600は、2つのフィールド、例えば、次のFCBアドレス(NFA)、バイト・カウント長(BCNT)および、パリティ・ビット(PTY)を第1のエントリの中に含むことが可能である。GQ218の中に存在するFCBのBFCB600の第2のエントリは、3つのフィールド、例えば、第1のBCBアドレス(FBA)、FCBに関連する第1のBCBに関連するバッファの開始バイト位置(SBP)、FCBに関連する第1のBCBに関連するバッファの終了バイト位置(EBP)とともに、パリティ・ビット(PTY)、FCBタイプ・ビット(FTO)、および打切りビット(ABOR)を含むことが可能である。NFAフィールドは、GQ218の中の次のFCBアドレスをポイントすることが可能であり、これにより、GQ218の中のFCBを連鎖させることが可能になる。BCNTフィールドは、FCBに関連する1つまたは複数のBCBのバイト・カウント長を含むことが可能である。FBAは、FCBに関連する第1のBCBのアドレスを含むことが可能である。SBPは、FCBに関連する第1のBCBに関連するバッファの開始バイト位置を含むことが可能である。EBPは、FCBに関連する第1のBCBに関連するバッファの終了バイト位置を含むことが可能である。前述したとおり、FCBのフィールドの中に、例えば、FBA、SBP、EBPの中に記憶される情報に関するさらなる詳細は、米国特許出願番号09/791,336に記載されている。FTOビットは、FCBのタイプを含むことが可能である。ABORビットは、FCBに関連するフレーム・データが例外条件に出会っており、FCBを有効と見なしてはならないことを示すことが可能である。
図7は、GQ218の中に存在するFCBのFFCB700のフィールドを示している。FFCB700は、36ビットであるエントリを含む。FFCB700は、任意のビット数を含む任意の数のエントリを含むことが可能であり、図7は、例示的なものであることに留意されたい。
GQ218の中に存在するFCBのFFCB700は、2つのフィールド、例えば、NFA、フレーム・バイト・カウント(BCNT)とともに、パリティ・ビット(PTY)を含むことが可能である。NFAフィールドは、次のFCBアドレスをポイントすることが可能であり、これにより、GQ218の中のFCBを連鎖させることが可能になる。BCNTフィールドは、FCBに関連する1つまたは複数のBCBのバイト・カウント長を含むことが可能である。ただし、メモリ224のFCBU2 225にアクセスして情報を取り出して、GQ218の中に存在するFCBのFFCB700のフィールドの中に記憶することは行われない可能性がある。というのは、GQ218の中に存在するFCBのFFCB700は、データ・フレームに関連していない可能性があるからである。つまり、GQ218の中に存在するFCBのFFCB700のフィールドは、重要ではなく、したがって、FFCB700に関連するメモリ224のFCBU2 225にアクセスする必要はない。
情報は、FFCB700の中にではなく、BFCB600の中に記憶されることが可能である。というのは、GQ218は、以下にさらに説明するとおり、スケジューラ130によってではなく、データ・フロー部110によって扱われるからである。したがって、GQ218の中に存在するFCBのBFCB600の中のフィールドは、有効な情報を含み、他方、GQ218の中に存在するFCBのFFCB700の中のフィールドは、無効な情報を含むことが可能である。
前述したとおり、RCB219が、FCB空き待ち行列222から取り出されたFCBをGQ218の中に入れる。RCB219は、GQ218の中のFCBのBFCB600のフィールドに情報を書き込むよう、メモリ210のFCBU1 209に対して2つの書込み要求を発行することができる。第1の書込み要求は、第1のエントリのフィールドに、例えば、NFA、BCNTに情報を書き込むことである。第2の書込み要求は、第2のエントリのフィールド、例えば、FBA、SBP、EBPに情報を書き込むことである。RCB219は、メモリ224のFCBU2 225に対してではなく、メモリ210のFCBU1 209に対してだけ、2つの書込み要求を発行することができる。というのは、メモリ210は、データ・フロー部110に関連し、メモリ224は、スケジューラ130に関連しているからである。したがって、RCB219は、FCB空き待ち行列222の中に存在するFCBのFFCB500のフィールドに関する、例えば、NFA、BCNTに関する情報を取り出すのに、メモリ224のFCBU2 225にアクセスしない。メモリ224にアクセスしないことにより、メモリ224の帯域幅効率が向上する。
ステップ303で、図2の説明で述べるとおり、GQ218の中のFCBが、ディスパッチャ論理217によって取り出されて、FCBに関連するフレーム・データが、組込み型プロセッサ150によって処理されることが可能になる。ディスパッチャ論理217は、GQ218の中のFCBのBFCB600のフィールドの中の情報を読み取るよう、メモリ210のFCBU1 209に対して2つの読取り要求を発行することができる。第1の読取り要求は、第1のエントリのフィールド、例えば、NFA、BCNTの中の情報を読み取るためのものである。第2の読取り要求は、第2のエントリのフィールド、例えば、FBA、SBP、EBPの中の情報を読み取るためのものである。ディスパッチャ論理217は、メモリ224のFCBU2 225にではなく、メモリ210のFCBU1 209に対してだけ、2つの読取り要求を発行することができる。というのは、メモリ210は、データ・フロー部110に関連し、メモリ224は、スケジューラ130に関連しているからである。つまり、ディスパッチャ論理217は、メモリ224のFCBU2に対してではなく、メモリ210のFCBU1 209に対してだけ、読取り要求を発行することができる。というのは、GQ218の中のFCBのFFCB700のフィールドの中の情報は、重要ではない、すなわち、無効な情報だからである。メモリ224にアクセスしないことにより、メモリ224の帯域幅の効率が向上する。
ステップ304で、FCBが、スケジューラ130内部のフロー待ち行列223の中に入れられることが可能である。前述したとおり、組込み型プロセッサ論理216が、処理済みのフレーム・データに関連するFCBをスケジューラ130に対して発行する。スケジューラ130は、受け取られたFCBをフロー待ち行列223の中に記憶するように構成されることが可能である。図8は、フロー待ち行列223の中に存在するFCBのBFCB800のフィールドを示している。BFCBは、それぞれが36ビットである2つのエントリを含むことが可能である。BFCB800は、任意のビット数の任意の数のフィールドおよび任意の数の行を含むことが可能であり、図8は、例示的なものであることに留意されたい。
フロー待ち行列223の中に存在するFCBのBFCB800は、第1のエントリの中に1つのフィールド、例えば、次のフレーム制御バッファ・アドレス(NFA)を含み、また第2のエントリの中に3つのフィールド、例えば、第1のBCBアドレス(FBA)、FCBに関連する第1のBCBに関連するバッファの開始バイト位置(SBP)、FCBに関連する第1のBCBに関連するバッファの終了バイト位置(EBP)を含むことが可能である。NFAフィールドは、フロー待ち行列223の中の次のFBCアドレスをポイントすることが可能であり、これにより、フロー待ち行列223の中のFCBを連鎖させることが可能になる。FBAは、FCBに関連する第1のBCBのアドレスを含むことが可能である。SBPは、FCBに関連する第1のBCBに関連するバッファの開始バイト位置を含むことが可能である。EBPは、FCBに関連する第1のBCBに関連するバッファの終了バイト位置を含むことが可能である。ただし、メモリ210のFCBU1 209にアクセスして情報を取り出して、フロー待ち行列223の中に存在するFCBのBFCB800のフィールドの中に記憶することは行われない可能性がある。というのは、フロー待ち行列223の中に存在するFCBのBFCB800は、データ・フレームに関連していない可能性があるからである。フロー待ち行列223の中に存在するFCBのBFCB800の第1のエントリの中のフィールドは、重要でない情報を含み、第2のエントリの中のフィールドは、記憶されている必要のある情報を含むことが可能である。その後、BFCB800に関連するメモリ210のFCBU1 209にアクセスする必要はない。
つまり、フロー待ち行列223の中に存在するFCBのBFCB800のフィールドは、重要ではなく、したがって、BFCB800に関連するメモリ210のFCBU1 209にアクセスする必要はない。
図9は、フロー待ち行列223の中に存在するFCBのFFCB900のフィールドを示している。FFCB900は、36ビットであるエントリを含むことが可能である。FFCB900は、任意のビット数を含む任意の数のフィールドおよび任意の数の行を含むことが可能であり、図9は、例示的なものであることに留意されたい。
フロー待ち行列223の中に存在するFCBのFFCB900は、2つのフィールド、例えば、NFAおよびフレーム・バイト・カウント(BCNT)とともに、パリティ・ビット(PTY)を含むことが可能である。NFAフィールドは、次のFCBアドレスをポイントすることが可能であり、これにより、フロー待ち行列223の中のFCBを連鎖させることが可能になる。BCNTフィールドは、FCBに関連する1つまたは複数のBCBのバイト・カウント長を含むことが可能である。
情報は、BFCB800の中にではなく、FFCB900の中に記憶されることが可能である。というのは、フロー待ち行列223は、以下にさらに説明するとおり、データ・フロー部110によってではなく、スケジューラ130によって扱われるからである。
前述したとおり、組込み型プロセッサ論理216は、フレーム・データを処理した後、処理済みのフレーム・データに関連するFCBをスケジューラ130に対して発行する。スケジューラ130は、ステップ304で、取り出されたFCBをフロー待ち行列223の中に入れるように構成されることが可能である。スケジューラ130は、フロー待ち行列223の中のFCBのFFCB900のフィールドに情報を書き込むよう、メモリ224のFCBU2 225に1つの書込み要求を発行することができる。この書込み要求は、FFCB900のフィールドに、例えば、NFA、BCNTに情報を書き込むことであることが可能である。スケジューラ130は、メモリ210のFCBU1 209に対してではなく、メモリ224のFCBU2 225に対してだけ、1つの読取り要求を発行することができる。というのは、メモリ224は、スケジューラ130に関連し、メモリ210は、データ・フロー部110に関連しているからである。メモリ210にアクセスしないことにより、メモリ210の帯域幅の効率が向上する。
ステップ305で、フロー待ち行列223の中のFCBが、スケジューラ130によって取り出されることが可能である。スケジューラ130は、フロー待ち行列223の中のFCBのFFCB900のフィールドの中の情報を読み取るよう、メモリ224のFCBU2 225に対して1つの読取り要求を発行することができる。この読取り要求は、FFCB900のフィールド、例えば、NFA、BCNTの中の情報を読み取ることである。スケジューラ130は、メモリ210のFCBU1 209に対してではなく、メモリ224のFCBU2 225に対してだけ、読取り要求を発行することができる。というのは、メモリ224は、スケジューラ130に関連し、メモリ210は、データ・フロー部110に関連しているからである。つまり、スケジューラ130は、メモリ224のFCBU2 225、およびメモリ210のFCBU1 209に対して1つの読取り要求を発行することができる。というのは、フロー待ち行列223の中のFCBのBFCB800のフィールドの中の情報は、重要でない、すなわち、無効な情報だからである。メモリ210にアクセスしないことにより、メモリ210の帯域幅の効率が向上する。
ステップ306で、フロー待ち行列223から取り出されたFCBが、送信機コントローラ210のTBQエンキュー論理227によってTBQ215に入れられることが可能である。図10は、TBQ215の中に存在するFCBのBFCB1000のフィールドを示している。BFCB1000は、それぞれが36ビットを含む2つのエントリを含むことが可能である。BFCB1000は、任意のビット数を含む任意の数のフィールドおよび任意の数の行を含むことが可能であり、図10は、例示的なものであることに留意されたい。
TBQ215の中に存在するFCBのBFCB1000は、第1のエントリの中に、2つのフィールド、例えば、次のフレーム制御バッファ・アドレス(NFA)、FCBに関連する1つまたは複数のBCBのバイト・カウント(BCNT)長および、パリティ・ビット(PTY)を含み、また第2のエントリの中に、4つのフィールド、例えば、第1のBCBアドレス(FBA)、FCBに関連する第1のBCBに関連するバッファの開始バイト位置(SBP)、FCBに関連する第1のBCBに関連するバッファの終了バイト位置(EBP)、フレーム・タイプ・フィールド(FT)とともに、パリティ・ビット(PTY)を含むことが可能である。NFAフィールドは、TBQ215の中の次のFCBアドレスをポイントすることが可能であり、これにより、TBQ215の中のFCBを連鎖させることが可能になる。BCNTフィールドは、FCBに関連する1つまたは複数のBCBのバイト・カウント長を含むことが可能である。FBAは、FCBに関連する第1のBCBのアドレスを含むことが可能である。SBPは、FCBに関連する第1のBCBに関連するバッファの開始バイト位置を含むことが可能である。EBPは、FCBに関連する第1のBCBに関連するバッファの終了バイト位置を含むことが可能である。FTフィールドは、FCBのタイプを含むことが可能である。
図11は、TBQ215の中に存在するFCBのFFCB1100のフィールドを示している。FFCBは、36ビットであるエントリを含むことが可能である。FFCB1100は、任意のビット数の任意の数のフィールドおよび任意の数の行を含むことが可能であり、図11は、例示的なものであることに留意されたい。
TBQ215の中に存在するFCBのFFCB1100は、2つのフィールド、例えば、NFA、FCBに関連する1つまたは複数のBCBのバイト・カウント(BCNT)長とともに、パリティ・ビット(PTY)を含むことが可能である。NFAフィールドは、次のFCBアドレスをポイントすることが可能であり、これにより、TBQ215の中のFCBを連鎖させることが可能になる。BCNTフィールドは、FCBに関連する1つまたは複数のBCBのバイト・カウント長を含むことが可能である。ただし、メモリ224のFCBU2 225にアクセスして情報を取り出して、TBQ215の中に存在するFCBのFFCB1100のフィールドの中に記憶することは行われない可能性がある。というのは、TBQ215の中に存在するFCBのFFCB1100は、データ・フレームに関連しない可能性があるからである。つまり、TBQ215の中に存在するFCBのFFCB1100のフィールドは、重要ではなく、したがって、FFCB1100に関連するメモリ224のFCBU2 225にアクセスする必要はない。
情報は、FFCB1100の中にではなく、BFCB1000の中に記憶されることが可能である。というのは、TBQ215は、以下にさらに説明するとおり、スケジューラ130によってではなく、データ・フロー部110によって扱われるからである。したがって、TBQ215の中に存在するFCBのBFCB1000のフィールドは、有効な情報を含み、他方、TBQ215の中に存在するFCBのFFCB1100のフィールドは、有効な情報を含まないことが可能である。
前述したとおり、TBQエンキュー論理227は、スケジューラ130から受け取られたFCBをTBQ215の中に入れる。TBQエンキュー論理227は、FCBのBFCB1000のフィールド、例えば、NFA、BCNTの中の情報をTBQ215に書き込むよう、メモリ210のFCBU1 209に対して1つの書込み要求を発行することができる。TBQエンキュー論理227は、送信機コントローラ210がスケジューラ130からFCBを受け取ったとき、スケジューラ130からFFCB900の中のBCNTフィールドの中の情報のコピーを受け取ることができる。TBQエンキュー論理227は、FFCB900のBCNTフィールドの中の情報をBFCB1000のBCNTフィールドに書き込むように構成されることが可能である。TBQエンキュー論理227は、第2のエントリのフィールドに情報を書き込む別の書込み要求を発行しない。というのは、BFCB800の第2のエントリのフィールドの中の情報は、フロー待ち行列223の中にある間、更新されなかったからである。その後、TBQエンキュー論理227は、2回ではなく、一回だけ、メモリ210のFCBU1 209にアクセスし、これにより、メモリ210の帯域幅の効率が向上する。さらに、TBQエンキュー論理227は、メモリ224のFCBU2 225に対してではなく、メモリ210のFCBU1 209に対してだけ、書込み要求を発行することができる。というのは、メモリ210は、データ・フロー部110に関連し、メモリ224は、スケジューラ130に関連しているからである。したがって、TBQエンキュー論理227は、TBQ215の中に存在するFCBのFFCB1100のフィールドに、例えば、NFA、BCNTに情報を書き込むのに、メモリ224のFCBU2 225にアクセスしない。メモリ224にアクセスしないことにより、メモリ224の帯域幅の効率が向上する。
ステップ307で、図2の説明に述べるとおり、TBQ215の中のFCBが、TBQスケジューラ228によって取り出されることが可能であり、FCBに関連するフレーム・データが、TBQスケジューラ228によって読み取られることが可能であるようになる。TBQスケジューラ228は、TBQ215の中のFCBのBFCB1000のフィールドの中の情報を読み取るよう、メモリ210のFCBU1 209に対して2つの読取り要求を発行することが可能である。第1の読取り要求は、第1のエントリのフィールド、例えば、NFA、BCNTの中の情報を読み取ることであることが可能である。第2の読取り要求は、第2のエントリのフィールド、例えば、FBA、FT、SBP、EBPのフィールドの中の情報を読み取ることであることが可能である。TBQスケジューラ228は、メモリ224のFCBU2 225に対してではなく、メモリ210のFCBU1 209に対してだけ、2つの読取り要求を発行することができる。というのは、メモリ210は、データ・フロー部110に関連し、メモリ224は、スケジューラ130に関連しているからである。したがって、TBQスケジューラ228は、TBQ215の中に存在するFCBのFFCB1100のフィールド、例えば、NFA、BCNTに関する情報を取り出すのに、メモリ224のFCBU2 225にアクセスしない。メモリ224にアクセスしないことにより、メモリ224の帯域幅が、向上する。
FCBに関連する処理済みのフレーム・データが、スイッチ/ポート・インターフェース部211を介して、パケット交換網内のスイッチ(図示せず)、またはパケット交換網に対するインターフェースとして動作するポート(図示せず)に伝送されると、ステップ308で、FCBは、FCBアービタ206のFCB空き待ち行列222の中に入れられることが可能である。FCBアービタ206は、送信機コントローラのPCB224からの伝送された処理済みのフレーム・データに関連するFCBを受け取るように構成され、FCBが、PCB224によってFCB空き待ち行列222の中に入れられることが可能である。
前述したとおり、図4は、FCB空き待ち行列222の中に存在するFCBのBFCB400のフィールドを示している。FCB空き待ち行列222の中に存在するFCBのBFCB400は、2つのフィールド、例えば、NFA(次のFCBアドレス)、ECC(誤り訂正コード)を含むことが可能である。NFAフィールドは、次のFCBアドレスをポイントし、これにより、FCB空き待ち行列222の中のFCBを連鎖させることが可能になる。ECCフィールドは、米国出願第09/792,533号に記載するとおり、誤り訂正コードのためのコードを含むことが可能である。
前述したとおり、図5は、FCB空き待ち行列222の中に存在するFCBのFFCB500のフィールドを示している。FFCB500は、36ビットであるエントリを含むことが可能である。FCB空き待ち行列222の中に存在するFCBのFFCB500は、2つのフィールド、例えば、NFA,FCBに関連する1つまたは複数のBCBのバイト・カウント(BCNT)長とともに、パリティ・ビット(PTY)を含むことが可能である。NFAは、次のFCBアドレスをポイントし、これにより、FCB空き待ち行列222の中のFCBを連鎖させることが可能になる。BCNTフィールドは、FCBに関連する1つまたは複数のBCBのバイト・カウント長を含むことが可能である。
情報は、FFCB500の中にではなく、BFCB400の中に記憶されることが可能である。というのは、FCB空き待ち行列222は、以下にさらに説明するとおり、スケジューラ130によってではなく、データ・フロー部110によって扱われるからである。したがって、FCB空き待ち行列222の中に存在するFCBのBFCB400の中のフィールドは、有効な情報を含み、他方、FCB空き待ち行列222の中に存在するFCBのFFCB500の中のフィールドは、無効な情報を含むことが可能である。
前述したとおり、FCBアービタ206は、送信機コントローラのPCB224からの送信された処理済みのフレーム・データに関連するFCBを受け取るように構成されることが可能であり、FCBは、PCB224によってFCB空き待ち行列222の中に入れられることが可能である。PCB224は、FCB空き待ち行列222の中のBFCB400にフィールドNFAおよびECCに関する情報を書き込むようにメモリ210のFCBU1 209に書込み要求を発行することができる。PCB224は、メモリ224のFCBU2 225に対してではなく、メモリ210のFCBU1 209に対してだけ、書込み要求を発行することができる。というのは、メモリ210は、データ・フロー部110に関連し、メモリ224は、スケジューラ130に関連しているからである。したがって、PCB224は、FCB空き待ち行列222の中に存在するFCBのFFCB500のフィールド、例えば、NFA、BCNTに関連する情報を取り出すのに、メモリ224のFCBU2 225にアクセスしない。メモリ224にアクセスしないことにより、メモリ224の帯域幅の効率が向上する。
方法300は、FCBの「ライフ・サイクル」を記述していることに留意されたい。さらに、方法300は、ネットワーク・プロセッサ100内部の他のFCBの「ライフ・サイクル」も記述できることに留意されたい。さらに、1つまたは複数の異なるFCBが、各待ち行列、例えば、GQ218、フロー待ち行列223、TBQ215、FCB空き待ち行列222の中に同時に存在することが可能であることにも留意されたい。
本発明に従って構成されたパケット・プロセッサを示す図である。 本発明に従って構成されたデータ・フロー部を示す図である。 フレーム制御ブロックの中の所望の情報を得るメモリ・アクセスの回数を減らすための方法を示す流れ図である。 データ・フロー部のFCB空き待ち行列の中に存在するFCBの基本FCBの本発明の実施形態を示す図である。 データ・フロー部のFCB空き待ち行列の中に存在するFCBのフローFCBの本発明の実施形態を示す図である。 データ・フロー部のGQの中に存在するFCBの基本FCBの本発明の実施形態を示す図である。 データ・フロー部のGQの中に存在するFCBのフローFCBの本発明の実施形態を示す図である。 スケジューラのフロー待ち行列の中に存在するFCBの基本FCBの本発明の実施形態を示す図である。 スケジューラのフロー待ち行列の中に存在するFCBのフローFCBの本発明の実施形態を示す図である。 データ・フロー部のTBQの中に存在するFCBの基本FCBの本発明の実施形態を示す図である。 データ・フロー部のTBQの中に存在するFCBのフローFCBの本発明の実施形態を示す図である。

Claims (11)

  1. データ・フレームを処理するように構成されたプロセッサ(100)であって、
    第1の制御ブロックおよび第2の制御ブロックをそれぞれが含む関連するフレーム制御ブロックをそれぞれが有する前記データ・フレームを受信し、伝送するように構成されたデータ・フロー部(110)と、
    前記フレーム制御ブロックの前記第1の制御ブロックに関するフィールド情報を記憶する第1のフレーム・バッファ制御部を含む、前記データ・フロー部に結合された第1のメモリ(210)と、
    前記データ・フロー部によって受信されたデータ・フレームをスケジュール設定するように構成され、前記フレーム制御ブロックの前記第2の制御ブロックに関するフィールド情報を記憶する第2のフレーム・バッファ制御部を含む第2のメモリ(224)を含む前記データ・フロー部に結合されたスケジューラ(130)とを含むプロセッサを含むシステム。
  2. 前記データ・フロー部が、1つまたは複数の前記フレーム制御ブロックが中に存在する複数の待ち行列を含む請求項1に記載のシステム。
  3. 前記データ・フロー部の前記複数の待ち行列の1つの中に存在する1つまたは複数の前記フレーム制御ブロックの前記第1の制御ブロックのフィールドの中の情報が、前記第1のメモリの前記第1のフレーム・バッファ制御部の中に記憶される請求項2に記載のシステム。
  4. 前記スケジューラが、1つまたは複数の前記フレーム制御ブロックが中に存在する第1の待ち行列を含む請求項1ないし3のいずれかに記載のシステム。
  5. 前記第1の待ち行列の中に存在する1つまたは複数の前記フレーム制御ブロックの前記第2の制御ブロックのフィールドの中の情報が、前記第2のメモリの前記第2のフレーム・バッファ制御部の中に記憶される請求項4に記載のシステム。
  6. フレーム制御ブロックの中のフィールド情報を獲得するメモリ・アクセスの回数を減らすための方法であって、前記フレーム制御ブロックのそれぞれが第1の制御ブロックおよび第2の制御ブロックを含み、第1のフレーム・バッファ制御部が前記フレーム制御ブロックの前記第1の制御ブロックに関するフィールド情報を記憶し、データ・フロー部に関連する第1のメモリ(210)が前記第1のフレーム・バッファ制御部を記憶し、第2のフレーム・バッファ制御部が前記フレーム制御ブロックの前記第2の制御ブロックに関するフィールド情報を記憶し、スケジューラに関連する第2のメモリ(224)が前記第2のフレーム・バッファ制御部を記憶し、
    前記方法は、
    前記第1のメモリにアクセスして、1つまたは複数の前記フレーム制御ブロックの前記第1の制御ブロックのフィールドの中の情報の読取り、または書込みを行うステップと、
    前記第2のメモリにアクセスして、1つまたは複数の前記フレーム制御ブロックの前記第2の制御ブロックのフィールドの中の情報の読取り、または書込みを行うステップと
    を含む方法。
  7. 1つまたは複数の前記フレーム制御ブロックが、前記データ・フロー部内部の複数の待ち行列の1つの中に存在する請求項6に記載の方法。
  8. 前記1つまたは複数のフレーム制御ブロックが前記データ・フロー部内部の前記複数の待ち行列の1つの中に存在するとき、1つまたは複数の前記フレーム制御ブロックの前記第1の制御ブロックのフィールドの中の情報の読取り、または書込みを行うのに、第1のメモリにアクセスが行われる請求項7に記載の方法。
  9. 1つまたは複数の前記フレーム制御ブロックが、前記スケジューラ内部の待ち行列の中に存在する請求項6ないし8のいずれかに記載の方法。
  10. 前記1つまたは複数のフレーム制御ブロックが前記スケジューラの前記待ち行列の中に存在するとき、1つまたは複数の前記フレーム制御ブロックの前記第2の制御ブロックのフィールドの中の情報の読取り、または書込みを行うのに、第2のメモリにアクセスが行われる請求項9に記載の方法。
  11. プログラムがコンピュータ上で実行されたとき、請求項6ないし10のいずれかに記載のステップを行うように適合されたプログラム・コード手段を含むコンピュータ・プログラム製品。
JP2002568568A 2001-02-23 2002-02-20 ネットワーク・プロセッサにおけるパケット記述子フィールド位置の割当て Expired - Fee Related JP3880520B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/792,494 US7072347B2 (en) 2001-02-23 2001-02-23 Assignment of packet descriptor field positions in a network processor
PCT/GB2002/000748 WO2002069563A2 (en) 2001-02-23 2002-02-20 Network adapter

Publications (2)

Publication Number Publication Date
JP2004530323A JP2004530323A (ja) 2004-09-30
JP3880520B2 true JP3880520B2 (ja) 2007-02-14

Family

ID=25157073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002568568A Expired - Fee Related JP3880520B2 (ja) 2001-02-23 2002-02-20 ネットワーク・プロセッサにおけるパケット記述子フィールド位置の割当て

Country Status (13)

Country Link
US (1) US7072347B2 (ja)
EP (1) EP1362464B1 (ja)
JP (1) JP3880520B2 (ja)
KR (1) KR100560277B1 (ja)
CN (1) CN100479450C (ja)
AT (1) ATE293864T1 (ja)
AU (1) AU2002232002A1 (ja)
CZ (1) CZ20032126A3 (ja)
DE (1) DE60203785T2 (ja)
ES (1) ES2237667T3 (ja)
HU (1) HUP0303240A3 (ja)
PL (1) PL363474A1 (ja)
WO (1) WO2002069563A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072347B2 (en) 2001-02-23 2006-07-04 International Business Machines Corporation Assignment of packet descriptor field positions in a network processor
US7200696B2 (en) * 2001-04-06 2007-04-03 International Business Machines Corporation System method structure in network processor that indicates last data buffer of frame packet by last flag bit that is either in first or second position
US7099325B1 (en) * 2001-05-10 2006-08-29 Advanced Micro Devices, Inc. Alternately accessed parallel lookup tables for locating information in a packet switched network
US7535845B2 (en) * 2004-10-28 2009-05-19 Alcatel Lucent Intelligent selective flow-based datapath architecture
US7376809B2 (en) * 2005-03-09 2008-05-20 International Business Machines Corporation Systems and methods for multi-frame control blocks
US7466715B2 (en) * 2005-03-28 2008-12-16 International Business Machines Corporation Flexible control block format for frame description and management
US7787463B2 (en) * 2006-01-26 2010-08-31 Broadcom Corporation Content aware apparatus and method
DE102008018670A1 (de) 2008-04-14 2009-10-15 Merck Patent Gmbh Neue Materialien für organische Elektrolumineszenzvorrichtungen
US10225196B2 (en) 2013-02-15 2019-03-05 Nxp Usa, Inc. Apparatus, system and method for controlling packet data flow
CN111654746B (zh) * 2020-05-15 2022-01-21 北京百度网讯科技有限公司 视频的插帧方法、装置、电子设备和存储介质
CN113835891B (zh) * 2021-09-24 2023-05-23 哲库科技(北京)有限公司 资源分配方法、装置、电子设备及计算机可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4817054A (en) 1985-12-04 1989-03-28 Advanced Micro Devices, Inc. High speed RAM based data serializers
US5136582A (en) 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5983004A (en) 1991-09-20 1999-11-09 Shaw; Venson M. Computer, memory, telephone, communications, and transportation system and methods
US5604884A (en) 1993-03-22 1997-02-18 Compaq Computer Corporation Burst SRAMS for use with a high speed clock
DE69329709D1 (de) 1993-04-29 2001-01-04 Ibm Verfahren und Gerät für Mehrfachübertragung von Daten in einem Kommunikationssystem
US5699536A (en) * 1995-04-13 1997-12-16 International Business Machines Corporation Computer processing system employing dynamic instruction formatting
JPH08328949A (ja) 1995-06-06 1996-12-13 Mitsubishi Electric Corp 記憶装置
US5898687A (en) * 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
JP3788867B2 (ja) 1997-10-28 2006-06-21 株式会社東芝 半導体記憶装置
US6035360A (en) 1997-10-29 2000-03-07 International Business Machines Corporation Multi-port SRAM access control using time division multiplexed arbitration
JP4182180B2 (ja) * 1999-02-24 2008-11-19 株式会社日立製作所 ネットワーク中継装置及びネットワーク中継方法
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6754216B1 (en) * 2000-05-08 2004-06-22 Nortel Networks Limited Method and apparatus for detecting congestion and controlling the transmission of cells across a data packet switch
US6751704B2 (en) * 2000-12-07 2004-06-15 International Business Machines Corporation Dual-L2 processor subsystem architecture for networking system
US7072347B2 (en) 2001-02-23 2006-07-04 International Business Machines Corporation Assignment of packet descriptor field positions in a network processor

Also Published As

Publication number Publication date
EP1362464B1 (en) 2005-04-20
CN100479450C (zh) 2009-04-15
DE60203785T2 (de) 2006-03-09
CZ20032126A3 (cs) 2004-01-14
CN1528078A (zh) 2004-09-08
US20020118690A1 (en) 2002-08-29
AU2002232002A1 (en) 2002-09-12
KR20030076679A (ko) 2003-09-26
EP1362464A2 (en) 2003-11-19
DE60203785D1 (de) 2005-05-25
ES2237667T3 (es) 2005-08-01
WO2002069563A3 (en) 2003-04-17
JP2004530323A (ja) 2004-09-30
HUP0303240A2 (hu) 2003-12-29
KR100560277B1 (ko) 2006-03-10
US7072347B2 (en) 2006-07-04
WO2002069563A2 (en) 2002-09-06
ATE293864T1 (de) 2005-05-15
HUP0303240A3 (en) 2005-05-30
PL363474A1 (en) 2004-11-15

Similar Documents

Publication Publication Date Title
JP3777161B2 (ja) マルチキャスト伝送の効率的処理
US6307789B1 (en) Scratchpad memory
US20070002172A1 (en) Linking frame data by inserting qualifiers in control blocks
US6967951B2 (en) System for reordering sequenced based packets in a switching network
US20030016689A1 (en) Switch fabric with dual port memory emulation scheme
JPH10222477A (ja) コンピュータ・システム間でデータ構造を転送する方法
EP1629644B1 (en) Method and system for maintenance of packet order using caching
JP3880520B2 (ja) ネットワーク・プロセッサにおけるパケット記述子フィールド位置の割当て
US6681340B2 (en) Efficient implementation of error correction code scheme
US6604156B1 (en) Message buffer full handling in a CAN device that employs reconfigurable message buffers
US6708258B1 (en) Computer system for eliminating memory read-modify-write operations during packet transfers
US5748633A (en) Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device
US6658546B2 (en) Storing frame modification information in a bank in memory
US6615302B1 (en) Use of buffer-size mask in conjunction with address pointer to detect buffer-full and buffer-rollover conditions in a CAN device that employs reconfigurable message buffers
US7069397B2 (en) Stream based memory manager with function specific hardware logic for accessing data as a stream in memory
US6847990B2 (en) Data transfer unit with support for multiple coherency granules
EP1085719A2 (en) Use of buffer-size mask in conjunction with address pointer to detect buffer-full and buffer-rollover conditions in a can device that employs reconfigurable message buffers

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20030821

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20030903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060310

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060310

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20060310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060629

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060629

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061020

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20061020

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061107

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees