JP2009238236A - パケット処理に対応する構成可能なマルチポートのマルチプロトコルのネットワークインタフェース - Google Patents

パケット処理に対応する構成可能なマルチポートのマルチプロトコルのネットワークインタフェース Download PDF

Info

Publication number
JP2009238236A
JP2009238236A JP2009135798A JP2009135798A JP2009238236A JP 2009238236 A JP2009238236 A JP 2009238236A JP 2009135798 A JP2009135798 A JP 2009135798A JP 2009135798 A JP2009135798 A JP 2009135798A JP 2009238236 A JP2009238236 A JP 2009238236A
Authority
JP
Japan
Prior art keywords
interface
internal
network
engine
external
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
Application number
JP2009135798A
Other languages
English (en)
Other versions
JP4745423B2 (ja
Inventor
Bapiraju Vinnakota
ヴァンナコタ,バピラジュ
Jonathan Liu
リウ,ジョナサン
Saurin Shah
シャー,サウリン
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2009238236A publication Critical patent/JP2009238236A/ja
Application granted granted Critical
Publication of JP4745423B2 publication Critical patent/JP4745423B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 ネットワーク性能を改善する。
【解決手段】 内部バスと、1つ以上の外部バスを有する外部バスアーキテクチャの間のネットワークインタフェースは、外部インタフェースエンジンと内部インタフェースを有する。外部インタフェースエンジン(EIE)は外部バスアーキテクチャに結合され、外部インタフェースエンジンは、1つ以上のバスプロトコルに従って外部バスアーキテクチャで通信する。内部インタフェースは外部インタフェースエンジンと内部バスに結合され、内部インタフェースは、内部バスと外部バスアーキテクチャとの間のネットワークデータをバッファする。一実施例では、内部インタフェースは、内部バスに結合された内部インタフェース(IIE)を有し、IIEは、ネットワークデータに対して複数のキューを定める。中間メモリモジュールがIIEとEIEに結合され、中間メモリモジュールは、複数のキューに従ってネットワークデータを収集する。
【選択図】 図2

Description

本発明の実施例は、概してコンピュータネットワーキングアーキテクチャに関するものである。具体的には、本発明の実施例は、プロセッサ内部バスと拡張ネットワーキング性能を可能にする外部バスとの間のネットワークインタフェースに関するものである。
非常に競争的なコンピュータ業界では、高速な処理と更なる機能に対するトレンドが十分に裏付けられている。このトレンドは消費者に望ましいが、コンピュータ設計と製造者に多数の課題を提示している。1つの懸念は、特に近代社会で急速に増加するインターネットの人気の観点から、ネットワーキングアーキテクチャに関するものである。チップ上システム(system-on-chip)の一般的なネットワーキングアーキテクチャが図1に10で図示されている。ネットワーキングプロセッサ12が内部バス14に結合し、一般的に内部メモリ18を有することが一般的にわかる。メモリ18はオンチップ(on-chip)でもよく、またオフチップ(off-chip)でもよく、更に内部バス14に結合される。プロセッサ12とメモリ18と内部バス14は“チップ上システム(system-on-chip)”(SOC)の一部でもよい。SOCはまた、内部バス14と外部バス22に結合された外部インタフェースエンジン(EIE)20を有することが更にわかる。外部バス22は、peripheral component interconnect(PCI version2.2、PCI Special Interest Group)プロトコル、universal test and operation physical interface for asynchronous transfer mode(Utopia Level 1/2/3、ATM Forum Technical Committee)プロトコル、及び/又は必要に応じてその他のもののような、バスプロトコルに対応する。このように、EIE20は、適切なプロトコルに従って外部バス22を通じて通信し、プロセッサ12によって使用するためにメモリ18にネットワークデータを格納し、多様なネットワーク機能を実装するためにメモリ18からネットワークデータを取り出す。
前述のアーキテクチャ10は、特定のネットワーキング環境では十分であるが、かなりの改善の余地が残っている。例えば、従来のEIE20は、1つの外部バスプロトコルに従って通信することしかできない単一のエンジンとして動作する。従って、マルチプロトコルを利用しようとすると、追加のEIEが必要になる。更に、EIEが追加されても、ユーザ定義の優先度に従って複数の論理キューを通じて物理リソースを共有することは困難である。リソースをプロトコルに割り当てるこの困難性は、マルチプロトコルインタフェースへの論理キューのマッピングが存在しないという事実に起因する。
更に、多様なプロトコルは、しばしば異なるデータ順序及び構成を使用する。例えば、あるプロトコルは、外部バスプロトコルに関わらずネットワークデータが同じ“ルック・アンド・フィール”を有するように確保するために、一般的にendian-swappingと呼ばれる技術を必要とすることがある。また、Utopia Level2からUtopia Level3への変化のように、ある世代から次の世代へのバスプロトコルの移行として、アップグレードに対応するインタフェースを追加することが望ましいことがある点に留意すべきである。しかし、従来のアーキテクチャ10では、新たなインタフェースを追加することは困難なことがあり、しばしばネットワークデータの内部ルック・アンド・フィールを変更する。更に、そのような変更は処理を複雑にすることがある。
一般的にEIE20がメモリ領域を有さず、それ故に内部バス14と外部バス22との間でネットワークをバッファする機能を欠いていることが更にわかる。このことは、多数の理由からネットワーキング性能に関して望ましくないことがある。例えば、内部データ転送が、ネットワークのバーストと無送信期間(dry spell)から生じるネットワークの過渡現象から隔離されない。この点について、一般的に処理速度は平均データ到達率と等しい。一般的に回線での最大レートは平均到達率より著しく高い。実際に、あるネットワークプロセッサ12は、毎秒約40メガバイトの情報を通過するように設計されているが、外部バス22を通じたデータは、毎秒100メガバイト程度の速度に到達し得る。従って、内部転送遅延が外部転送遅延から分離されず、オーバーフロー機能がないことでネットワークのバースト中にパケットがドロップするという結果を生じ得る。
特に留意すべき点は、一般的なEIE20は読み書きデータ転送機構を使用しており、データはメモリ18に書き込まれ、プロセッサ12は内部バス14で読み取り動作を介してオフチップのメモリ18にアクセスすることである。遅延の観点からは、データの要求者が返信されるデータについて複数サイクルを待たなければならないことがしばしばあるため、読み取り動作は書き込み動作よりコストが高い。更に、一般的にサイクルの数は正確に予測できない。その結果、効率性に難点が生じることがある。更に、従来ではEIE20は、サービス優先順位付け、トラヒックの分類、及びデータ転送コストの分割償却(amortization)を提供することができない。その結果、プロセッサ12に利用可能な処理時間の多くが、ネットワークデータの管理に費やされなければならず、ネットワークデータの実際のパケットの処理に少ない時間が費やされることがある。
本発明の理解に有用な従来のネットワーキングアーキテクチャの一例のブロック図である。 本発明の一実施例によるネットワーキングアーキテクチャの一例のブロック図である。 本発明の一実施例によるネットワークインタフェースの一例のブロック図である。 本発明の一実施例に従ってネットワークデータの転送に対応する方法の一例のフローチャートである。 本発明の一実施例に従って内部インタフェースにネットワークデータをバッファする処理の一例のフローチャートである。 本発明の一実施例に従ってネットワークデータに対して複数のキューを定める処理の一例のフローチャートである。 本発明の一実施例に従って中間メモリモジュールにネットワークデータを収集する処理の一例のフローチャートである。 本発明の一実施例に従って外部バスで通信する処理のフローチャートである。
以下の明細書と特許請求の範囲を読むことにより、また以下の図面を参照することにより、本発明の実施例の多様な利点が当業者に明らかになる。
本発明の実施例は、かなりの拡張ネットワーク性能を提供する。図2は、プロセッサ内部バス14と、1つ以上の外部バスを有する外部バスアーキテクチャ28との間に配置されたネットワークインタフェース26を有するネットワーキングアーキテクチャ24を示している。1つ以上のネットワーキングプロセッサ12と内部メモリ18は、前述のように内部バス14に結合されている。“結合”という用語は、直接接続又は間接接続を示すために使用され、如何なる商業的に利用可能な技術により実装されてもよく、また電気的、光学的、磁気的、機械的、又はその何らかの組み合わせでもよい。外部バスアーキテクチャ28は、peripheral component interconnect(PCI)や、universal test and operation physical interface for ATM(Utopia) Level2の系統のプロトコルのような複数のバスプロトコルに対応可能である。以下に詳細に説明するように、複数のバスプロトコルの使用を可能にすることにより、ネットワークインタフェース26が単一バスの手法より頑強になる。ネットワークインタフェース26は主にPCI及びUtopiaプロトコルに関して説明されるが、本発明の実施例はそれに限定されないことに留意すべきである。実際に、ネットワークインタフェース26は、ネットワーク性能が問題になる如何なるネットワーキングアーキテクチャでも使用可能である。それにもかかわらず、ネットワークインタフェース26が一意に適するプロトコルの複数の形態が存在する。
ネットワークインタフェース26が、外部インタフェースエンジン(EIE)30と内部インタフェース32を有することが一般的にわかる。新たなプロトコルに適応するために、ネットワークインタフェース26の一部のみを変更すればよいことに特に留意すべきである。特に、EIE30を追加することにより、新たなインタフェースが容易に追加され得る。EIE30は外部バス28に結合され、EIE30は1つ以上のバスプロトコルに従って外部バスアーキテクチャ28で通信する。内部インタフェース32はEIE30と内部バス14に結合され、内部インタフェース32は内部バス14と外部バスインタフェース28の間でネットワークデータをバッファする。ネットワークデータをバッファすることにより、多数の利点が達成され得る。例えば、内部転送遅延と外部転送遅延を分離するために、内部データ転送が一時的なネットワークのバースト/無送信期間(dry spell)から分離され得る。更に、ネットワークデータのパケットの収集に有利に働くある程度の規模の経済が存在する。ここで説明するように、その他の複数の利点も達成される。
特に、内部インタフェース32は内部バス14に結合された内部インタフェースエンジン(IIE)34を有し、IIE34はネットワークデータに対して複数のキューを定めることがわかる。中間メモリモジュール36がIIE34とEIE30に結合され、メモリモジュール36は複数のキューに従ってネットワークデータを収集する。別のキューからのデータは、中間メモリモジュール36の独立のバッファに分離される。
次に図3を参照すると、一般的にIIE34は、EIE30と中間メモリモジュール36に結合されたマルチチャネルのレジスタ構成38を有することがわかる。内部バスインタフェースアーキテクチャ40が内部バス14に結合されていることも更にわかる。ダイレクトメモリアクセス(DMA:direct memory access)エンジンアーキテクチャ42は内部バスインタフェースアーキテクチャ40と中間メモリモジュール36に結合されている。DMAエンジンアーキテクチャ42により、内部バスインタフェースアーキテクチャ40が、内部バス14を介して中間メモリモジュール36と複数のアドレス可能位置との間でネットワークデータを直接転送することが可能になる。特に、インタフェースアーキテクチャ40は、内部メモリに加えて、プロセッサにデータを送信し、プロセッサからデータを受信することが可能である。
このように、ネットワークデータは中間メモリモジュール36に書き込まれ、次に内部バス14(入力の場合)又は外部バスアーキテクチャ28(出力の場合)に書き込まれる。従って、結果のデータ転送機構は、データが宛先メモリに書き込まれて当該のプロセッサにより読み取られる従来の“読み書き”機構に対して、“書き込み−書き込み”機構としてみなされ得る。例えば、入力データを処理する従来の手法は、メモリ18がデータの対象の宛先であるか否かに関わらず、全てのネットワークデータを外部又は内部メモリ18(図1)に書き込むことを含んでいる。従って、プロセッサ12(図1)は、メモリ18からデータを取り出すために、読み取り動作を行わなければならない。プロセッサ12がメモリ18から戻されるデータを待たなければならないため、読み取り動作はかなりの処理時間を費やすことに特に留意すべきである。更に、プロセッサ12が待機する必要のある時間を予測することがしばしば困難である。端的に言えば、インタフェースアーキテクチャ40は“書き込み−書き込み”データ転送機構に対応し、その“書き込み−書き込み”転送機構は、従来の“読み書き”機構よりかなり効率的である。
具体的には、DMAエンジンアーキテクチャ42は、マスターDMAエンジン44と、スレーブDMAエンジン46とを有する。マスターDMAエンジン44は、優先度を得たキューに対してDMA設定情報(ソースアドレスや、宛先アドレスや、指示や、DMA長等)を決定するために、キューの優先データを使用する。従って、マスターDMAエンジン44は、どのキューが内部バス14のマスターであるかを決定し、ダイレクトメモリアクセスを実施する。他方、スレーブDMAエンジン46は、内部バス14がデータ転送のマスターになることを効果的に可能にする。したがって、選択されたキューはスレーブアドレスのコード化の関数であり、レジスタ構成38で行われる仲裁(arbitration)により定められない。内部及び外部エンジンは、送受信パスのマスター/スレーブになるように独立して構成され得る。このことにより、最もバス効率のよい構成が可能になる。例えば、装置から送信されるデータについて、内部エンジンはスレーブになり、外部エンジンがマスターになり得る。同じことがデータの受信についても当てはまる。
内部バスインタフェースアーキテクチャ40は、内部バスマスターインタフェース48と、内部バススレーブインタフェース50と、内部バススレーブインタフェース50に結合された複数のローカル制御レジスタ52とを有することが更にわかる。ローカル制御レジスタ52は、複数のアドレス可能位置に関するデータと、他のハンドオフ情報(handoff information)を格納する。
更に、マルチチャネルのレジスタ構成38は、EIE30とメモリモジュール36に結合された一式の受信キューレジスタ54を有する。一式の送信キューレジスタ56は、EIE30とメモリモジュール36に結合され、制御ロジック58が受信キューレジスタ54と送信キューレジスタ56に結合され、キューを優先順位付けてネットワークデータのDMA設定情報を定める。このように、制御ロジック58はキューを仲裁し、優先度が割り当てられた通りに結果を多重化する。
メモリモジュール36は、ランダムアクセスメモリ(RAM)60と、RAM60とEIE30とIIE34に結合されたRAMコントローラ62とを有することがわかる。RAMコントローラ62は、IIE34により定められたキューに基づいてバッファの区画を確立する。バッファの区画はネットワークデータのスループット要件に基づいて変化し得ることに特に留意すべきである。構成可能な区画を提供することにより、複数の利益を得ることができる。例えば、異なるクラスのトラヒックが明確なニーズに従って転送されて処理され得る。この手法により、異なる種類のトラヒックに無関係に、プログラマが処理効率/転送効率とデータ転送遅延とのトレードオフをすることも可能になる。更に、DMAに無関係のハンドオフ機構により、複数のパケットがパケットコアで同時に処理され、データ転送コストの分割償却(amortization)が可能になる。
EIE30は、第1の外部バスインタフェース64と、第2の外部バスインタフェース66とを有することが更にわかる。第1の外部バスインタフェース64は、第1のバスプロトコルに従って第1の外部バス28aで通信する。図示の例では、第1のバスプロトコルはUtopia Level2プロトコルである。第2の外部バスインタフェースは、第2のバスプロトコルに従って第2の外部バス28bで通信する。図示の例では、第2のバスプロトコルはPCIバスプロトコルである。EIE30が複数の外部バスプロトコルに従って動作することを可能にし、この機能を前述の構成可能なキュー構造に組み込むことにより、複数の利点を得ることができる。例えば、ネットワークデータの内部のルック・アンド・フィールを変更することなく、また極度に処理を複雑にすることなく、インタフェースを追加することができる。更に、プロセッサにマイナスのソフトウェア効果を与えることなく、endian-swappingが実行可能であり、リソース管理がかなり容易に実装される。endian-swappingに加えて、EIE30は、可変の幅のインタフェースからデータを取得し、装置内部のあるフォーマットに渡すことが可能になる。例えば、Utopiaは16ビットのインタフェースであるが、PCIは32ビットのインタフェースである。
第2の外部バスインタフェース66は、ホストインタフェースとして第2の外部バスインタフェース66を使用するために、内部バスマスターインタフェース48との直接のリンクを有することに留意すべきである。換言すると、第2の外部バスインタフェース66は、ホスト中央処理装置(CPU)とのインタフェースになり、そのホスト中央処理装置(CPU)がシステムを構成及び初期化し、また呼び出し設定(call setup)を実行してもよい。ダイレクトブリッジ68で、ホストCPUは内部バス14に直接アクセスする。このモードでは、ダイレクトブリッジ68は外部バスアーキテクチャ28でスレーブとして動作し、内部バス14でマスターとして動作する。ダイレクトマスターDMA70はDMAエンジンであり、内部バス14から外部バスアーキテクチャ28にデータをコピーし、またその逆も行い、双方のバスでマスターとして動作する。
次に図4を参照すると、プログラミング目的のために、プロセッサ内部バスと外部バスとの間でのネットワークデータの転送に対応する方法72が図示されている。一般的に処理ブロック74は、1つ以上のバスプロトコルに従って外部バスで通信することを提供し、ブロック76は、内部バスと外部バスと内部インタフェースの間でネットワークデータをバッファすることを提供する。ブロック78は、プロセッサのハンドオフプロトコルに従って、プロセッサと内部バスで通信することを提供する。内部バスから外部バスへのデータ転送を表すために、ブロック74と78は逆になってもよいことに留意すべきである。従来の手法はネットワークデータをバッファすることを行わず、プロセッサと直接通信することも行わないことにも特に留意すべきである。どちらかと言えば、ネットワークデータがEIEを通じて内部メモリに直接渡され、内部メモリに書き込まれることが一般的である。その結果、プロセッサはネットワークデータを取得するために内部バスと通信しなければならない。他方、図示の手法により、ネットワークデータが最終の宛先(すなわちプロセッサ)に直接送信されることが可能になる。
次に図5を参照すると、ネットワークデータと内部インタフェースをバッファする1つの手法がブロック76’に詳細に図示されている。特に、処理ブロック80で複数のキューがネットワークデータについて定められることがわかる。ブロック82は、複数のキューに従って中間メモリモジュールにネットワークデータを収集することを提供する。このように、ネットワークデータが多数のパケットを有する場合に、プロセッサコアにパケットを書き込み、そこからパケットを読み取る際にある程度の規模の経済を活用するために、複数のパケットが所定のキューに集められ得る。
図6は、ブロック80’に詳細に複数のキューを定める1つの手法を示している。特に、処理ブロック84は、各キューに所定のクラスのネットワークデータを割り当てることを提供することがわかる。ブロック86は、所定のクラス毎に送信優先度を定めることを提供する。ブロック88は、内部インタフェースが内部バスを介して中間メモリモジュールと複数のアドレス可能位置との間でネットワークデータを直接転送することを可能にすることを提供することが更にわかる。
次に図7を参照すると、複数のキューに従ってデータを収集する1つの手法がブロック82’に詳細に図示されている。ブロック90で、キューに基づいて中間メモリモジュールにバッファ区画が確立されることがわかる。ブロック92は、ネットワークデータのスループット要件に基づいて区画のサイズを変更することを提供する。ブロック98は、必要に応じてendian-swappingを提供する。基本的に、ネットワークデータは可変のビットオーダー(すなわち最高から最低へ、又は最低から最高へ)に従ってバッファされる。従って、可変のビットオーダーにより、外部バスで通信するためにUtopiaバスプロトコルが使用されているか、またPICバスプロトコルが使用されているかに内部バスでの通信が無関係になり得る。図8は、ブロック74’に詳細に外部バスで通信する1つの手法を示している。ブロック94は、第1のバスプロトコルに従って第1の外部バスインタフェースと外部バスで通信することを提供する。ブロック96は、第2のバスプロトコルに従って第2の外部バスインタフェースと外部バスで通信することを提供する。
図1−8を参照し続けると、全てのエンジンがレジスタを通じて初期化されてプログラムされ得ることがわかる。更に、ネットワークインタフェース26は、外部への8個の別個の論理送受信キューを提供する。IIE34は、内部バス14を通じたSOCの内部構成要素とRAM60との間の双方向データ転送の役割をするDMAエンジンとして機能する。従って、中間メモリモジュール36は、一時データ記憶装置の役割をする。EIE30は、RAM60と外部ネットワークとの間の双方向データ転送の役割をするDMAエンジンを有する。
IIE34は、集積回路(IC)内でバッチに基づく計算モデルに対応するように設計される。バッチに基づく計算モデルにより、プロセッサ12の全てのリソースが使用されるように、データの移動で計算の真のオーバーラップが可能になる。IIE34は、SOCの内部の転送機構についてマスターになることもでき、スレーブになることもできる。IIE34は、ネットワークから受信したデータを内部バス14に書き込むことにより、プロセッサの如何なる位置にも無関係に転送することができる。データは、一式のプログラム可能レジスタ52と54と56により指定されたアドレスに書き込まれる。従って、各キューは、自由な位置にデータを転送することができる。データが書き込まれると、ハードウェアベースのハンドシェーク機構(handshaking mechanism)を通じてSOCの内部のプロセッサ12のエージェントにハンドオフされる。逆に、データがネットワークに送信される場合、SOCの内部の処理エージェントはIIE34にデータをハンドオフする。効率的な転送を可能にするために、IIE34は、RAM60にデータを書き込むことを可能にすることにより、外部エージェントから直接データを受け入れることができる。そしてEIE30はRAM60から外部インタフェースにデータを転送する。
計算エンジン/処理エージェントへ/からのデータのハンドオフは、処理バッファの概念に基づく。各バッファは、実際に1つ以上のパケット/セルを有することがある。収集を大きくすることにより、遅延の増加を代償にして、より良い転送効率と処理効率が可能になる。前述のように、バッファの位置とサイズはプログラム可能である。図示の例では、ネットワークインタフェース26は、8個の別個のデータのバッファまでに対応可能である。このことにより、複数のバッファが“作動中(in-flight)”になり、プロセッサコア内で同時に処理されることが可能になる。更に、バッファの数は8に固定される必要はない。各バッファが複数のパケット/セルを有する場合に、IIE34とEIE30のロジックにより、ネットワークインタフェース26が各バッファ内のデータの“フレーム”(例えばIPパケット、又は非同期転送モードのATMセル)を追跡することが可能になる。それにより、外部インタフェースで提供されるフレーム情報がプロセッサ12の内部で維持され、データ処理を支援することが可能になる。更に、レジスタ52と54と56は、各バッファについてデータをどこに配置するかをエンジンに伝える情報を有する。
前述のように、バッファに基づく構成により、プロセッサ12内のバッチ計算モデルが可能になり、計算遅延に対するデータ転送効率/処理効率のトレードオフが可能になる。バッファに基づく構成はまた、SOCリソースの高度な利用を可能にする。複数のキュー構造により、異なるクラスのトラヒックが別々に処理されることが可能になる。更に、異なるクラスのトラヒックは、SOCの異なる位置に向けられ得る。また、複数のキュー構造により、ユーザがプロセッサコアのような他のSOCリソースを(潜在的に異なる機能を備えた)所定のキューにささげることが可能になり、更なる効率性及び/又は容易なソフトウェア設計を提供する。複数バッファ構成により、複数のデータのバッファがコアで同時に処理されることが可能になる。データが如何なるアドレス可能位置の如何なるエージェントにもハンドオフされ得ることが更にわかる。従って、制御トラヒックやデータトラヒックやスルー(through)トラヒックのような複数の種類のトラヒックに対して、単一のキュー構造が使用され得る。データのフレームの対応は、転送の宛先エンドのソフトウェアにフレームの境界の知識を提供し、そのため、境界を決定するためにフレームの内容を解析する必要がなくなる。その結果、かなりの計算時間の節約になる。キューを通じてデータ転送優先度がいくつかの方法で変更されてもよいことがわかる。ソフトウェアが異なる大きさのRAM区画に構成することを可能にすることや、異なるキューに対してDMAのブロックサイズ及びDMAの遅延を変更することのように、リソースを柔軟に割り当てることにより、高い優先度のチャネルの厳格な遅延又は帯域の要件にユーザが対処することに役立ち得る。
ネットワークインタフェース26のアーキテクチャにより、複数のプロトコルからのインタフェースにシームレスに対応できることが更にわかる。外部ネットワークは、PCIバスや、Utopia(Level1、2又は3)、POS/PHY等のような標準的な電気バスでもよく、また独自のバスでもよい。複数の外部バスインタフェース64と66を通じて、単一のネットワークインタフェース(又はバックプレーンインタフェース、BIF)の実装が、複数の異なる独立の物理バスとインタフェース接続されてもよい。更に、異なるプロトコルに存在する変化するデータオーダーの機構に対処するために、各キューは独立のbyte-swapping機構を備えている。
一般的に、Utopia又はPCIインタフェースのようなインタフェースのピークのスループットは、SOCの内部でデータが処理される平均のレートよりかなり高い。逆に、トラヒックバーストに続いて、ネットワークが“ドライ(dry)”になる間の期間が存在し得る。このニーズに対処するため、RAM60により、SOCがネットワークからのデータのバーストを吸収することが可能になる。さもなければデータが失われることがある。ネットワークインタフェース26は、不規則なネットワークトラヒック特性を許容するマルチレイヤ機構を有する。RAM60は、外部転送遅延から内部転送遅延を分離するバッファとしての役割をする。短いネットワークの過渡現象はRAM60により吸収され得る。IIE34は、ハードウェアベースの耐オーバーフロー機構を有し、その耐オーバーフロー機構により、SOCが受信時にネットワークインタフェースでトラヒックの一時バーストを受けたとき、又はネットワークが送信時に輻輳したときにデータをバッファすることが可能になる。ハードウェアベースのオーバーフローは実装が簡単な状態機械機構で定められる。オーバーフローしたデータは、同じルック・アンド・フィールで(すなわち、同じバッファで元のデータと同じ位置に)提示される。従って、内部ソフトウェアアーキテクチャは、オーバーフローのデータに対して別の処理フローを必要としない。逆に、無送信期間(dry spell)中に、ハードウェア先取り機能が、RAM60に陳腐したデータが存在しないように確保する。この双方の機構がなければ、データ受信の場合にEIE30を通じてネットワークインタフェース26を通じて生じ得るハードウェアバックプレッシャー信号(hardware backpressure signal)が存在する。この場合に、送信時にSOCが固まり、受信時にネットワークが固まる。
前述のように、各データキューは独立したレジスタセットを有する。しかし、8個のキューは、RAM60と転送リソースを共有する。8個のキューを通じたリソースの分割はプログラム可能である。これらのキューは、異なる外部インタフェース及び/又はSOC内の異なる内部プロセッサコアに割り当てられてもよい。異なるキューがRAM60の変化する区画サイズを割り当てられてもよく、変化する優先度がIIE34又はEIE30により実行されるDMA転送に割り当てられても良いため、キューの間でリソース割り当ては柔軟性がある。共有のリソースが取得された時に占有される持続時間もまた、自由にプログラム可能である。
ネットワークインタフェース26を備えたSOCは、ネットワークの誤作動を頑強に許容し、さもなければ失われることがあるデータを保護することができる。このことはネットワーク処理の際にきわめて重要である。RAM60はまた、内部と外部のバスインタフェースの遅延を分離する。ネットワークからのバーストトラヒックの期間、一時的なネットワークの輻輳、又はネットワークの無送信期間(dry spell)がSOCの内部から分離される。マルチレイヤのデータ転送アーキテクチャにより、外部ネットワークがデータを転送することをインタフェースが妨げる回数と、ネットワーク状況に応じてSOCが固まる回数を最小化する。ネットワークインタフェース26により、複数の物理インタフェース(PCIやUtopia等)が共通の電気インタフェース及びプログラムインタフェースをSOCの内部のハードウェア/ソフトウェアに提示することが可能になる。内部のハードウェア及びソフトウェアが異なる外部バスに直接インタフェース接続する他のアーキテクチャに比べて、この共通のインタフェースは設計時間を低減し、SOCの内部のハードウェアブロックとソフトウェアプログラムの双方に対して高度の設計上の抽象化を可能にする。SOCの内部インタフェースを変更することなく、内部アーキテクチャ及び設計に最小の破壊で、新たなネットワークインタフェースが追加され得る。ネットワークインタフェース26のリソースと、それにより全体のSOCのリソースが、多様な構成の複数の外部プロトコルインタフェースを通じてシームレスに共有され得る。
ネットワークインタフェース26は、競争の厳しいマーケットの需要に合致するために必要な設計上の柔軟性と性能レベルを提供する。複数の志願者が同時に外部プラットフォームと通信するマルチプロセッサ環境は、個々の独立のキューにリソースを割り当てる固有の機能を利用することができる。更に、複数のプロトコルが“進行中に”設計に組み込まれることを可能にすることにより、ネットワークインタフェース26は、キューの効率を最大化する強力な機構を提供する。
前述の記述から、本発明の実施例の広い技術が多様な形式で実装され得ることが当業者にわかる。したがって、本発明の実施例は特定の実施例と関連して記載されたが、図面と明細書と特許請求の範囲の研究から他の変更形態も当業者に明らかになるため、本発明の実施例の真の範囲はそれに限定されるべきではない。
以上の実施例を含む実施形態に関し、更に、以下の項目を開示する。
(1) プロセッサ内部バスと、1つ以上の外部バスを有する外部バスアーキテクチャとの間のネットワークインタフェースであって、
前記外部バスアーキテクチャに結合され、1つ以上のバスプロトコルに従って前記外部バスアーキテクチャ上で通信する外部インタフェースエンジンと、
前記外部インタフェースエンジンと前記内部バスに結合され、特定の論理区画に従って前記内部バスと前記外部バスアーキテクチャとの間でネットワークデータをバッファする内部インタフェースと
を有するネットワークインタフェース。
(2) (1)に記載のネットワークインタフェースであって、
前記内部インタフェースが、
前記内部バスに結合され、前記ネットワークデータに対して複数のキューを定める内部インタフェースエンジンと、
前記内部インタフェースエンジンと前記外部インタフェースエンジンに結合され、前記複数のキューに従って前記ネットワークデータを収集する中間メモリモジュールと
を有するネットワークインタフェース。
(3) (2)に記載のネットワークインタフェースであって、
前記内部インタフェースエンジンが、
前記外部インタフェースエンジンと前記中間メモリモジュールに結合されたマルチチャネルのレジスタ構成と、
前記内部バスに結合された内部バスインタフェースアーキテクチャと、
前記内部バスインタフェースアーキテクチャと前記中間メモリモジュールに結合され、前記内部バスインタフェースアーキテクチャが前記内部バスを介して前記中間メモリモジュールと複数のアドレス可能位置との間で前記ネットワークデータを直接転送することを可能にするダイレクトメモリアクセス(DMA)エンジンアーキテクチャと
を有するネットワークインタフェース。
(4) (3)に記載のネットワークインタフェースであって、
前記DMAエンジンアーキテクチャが、
マスターDMAエンジンと、
スレーブDMAエンジンと
を有するネットワークインタフェース。
(5) (4)請求項4に記載のネットワークインタフェースであって、
前記マスターDMAエンジンが前記マルチチャネルのレジスタ構成に結合され、前記マスターDMAエンジンが前記レジスタ構成からキューの優先データとDMA設定情報を受信するネットワークインタフェース。
(6) (3)に記載のネットワークインタフェースであって、
前記内部バスインタフェースアーキテクチャが、
内部バスマスターインタフェースと、
内部バススレーブインタフェースと、
前記内部バススレーブインタフェースに結合され、前記複数のアドレス可能位置に関するデータを格納する複数のローカル制御レジスタと
を有するネットワークインタフェース。
(7) (3)に記載のネットワークインタフェースであって、
前記マルチチャネルのレジスタ構成が、
前記外部インタフェースエンジンと前記中間メモリモジュールに結合された一式の受信レジスタと、
前記外部インタフェースエンジンと前記中間メモリモジュールに結合された一式の送信レジスタと、
前記受信レジスタと前記送信レジスタに結合され、前記キューを優先順位付けて、前記ネットワークデータに対してDMA設定情報を定める制御ロジックと
を有するネットワークインタフェース。
(8) (2)に記載のネットワークインタフェースであって、
前記中間メモリモジュールが、
ランダムアクセスメモリ(RAM)と、
前記RAMと前記外部インタフェースエンジンと前記内部インタフェースエンジンに結合され、前記内部インタフェースエンジンにより定められたキューに基づいて、バッファ区画を確立するRAMコントローラと
を有するネットワークインタフェース。
(9) (8)に記載のネットワークインタフェースであって、
前記バッファ区画が可変であるネットワークインタフェース。
(10) (8)に記載のネットワークインタフェースであって、
前記RAMコントローラが、ネットワークの無送信期間(dry spell)に前記RAMのネットワークデータが破棄されることを妨げるように、ハードウェアベースの無送信期間(dry spell)機構を使用するネットワークインタフェース。
(11) (8)に記載のネットワークインタフェースであって、
前記RAMコントローラが、ネットワークのバーストによりネットワークデータが前記RAMによりドロップされることを妨げるように、ハードウェアベースのオーバーフロー機構を使用するネットワークインタフェース。
(12) (2)に記載のネットワークインタフェースであって、
前記キューが、相互に無関係に前記ネットワークデータを転送するネットワークインタフェース。
(13) (1)に記載のネットワークインタフェースであって、
前記ネットワークデータがパケットを有し、
前記ネットワークインタフェースが、バッチに基づく処理モデルに基づいて前記パケットをバッファするネットワークインタフェース。
(14) (13)に記載のネットワークインタフェースであって、
前記内部インタフェースがパケットをフレーム化するネットワークインタフェース。
(15) (1)に記載のネットワークインタフェースであって、
前記外部インタフェースエンジンが、
第1のバスプロトコルに従って前記外部バスアーキテクチャ上で通信する第1の外部バスインタフェースと、
第2のバスプロトコルに従って前記外部バスアーキテクチャ上で通信する第2の外部バスインタフェースと
を有するネットワークインタフェース。
(16) (15)に記載のネットワークインタフェースであって、
前記第1の外部バスインタフェースが、第1の外部ダイレクトメモリアクセス(DMA)エンジンを有するネットワークインタフェース。
(17) (15)に記載のネットワークインタフェースであって、
前記第2の外部バスインタフェースが、第2の外部ダイレクトメモリアクセス(DMA)エンジンを有するネットワークインタフェース。
(18) ネットワークインタフェースの外部インタフェースエンジンと内部バスとの間に配置された内部インタフェースであって、
前記内部バスに結合され、ネットワークデータに対して複数のキューを定める内部インタフェースエンジンと、
前記内部インタフェースエンジンと前記外部インタフェースエンジンに結合され、前記複数のキューに従って前記ネットワークデータを収集する中間メモリモジュールと
を有する内部インタフェース。
(19) (18)に記載の内部インタフェースであって、
前記内部インタフェースエンジンが、
前記外部インタフェースエンジンと前記中間メモリモジュールに結合されたマルチチャネルのレジスタ構成と、
前記内部バスに結合された内部バスインタフェースアーキテクチャと、
前記内部バスインタフェースと前記中間メモリモジュールに結合され、前記内部バスインタフェースアーキテクチャが前記内部バスを介して前記中間メモリモジュールと複数のアドレス可能位置との間で前記ネットワークデータを直接転送することを可能にするダイレクトメモリアクセス(DMA)エンジンアーキテクチャと
を有する内部インタフェース。
(20) (19)に記載の内部インタフェースであって、
少なくとも1つのアドレス可能位置がプロセッサの一部であり、前記プロセッサが前記内部バスに結合された内部インタフェース。
(21) (20)に記載の内部インタフェースであって、
前記内部バスインタフェースアーキテクチャが、プロセッサのハンドオフプロトコルに従って前記内部バスに結合されたプロセッサと通信する内部インタフェース。
(22) (18)に記載の内部インタフェースであって、
前記中間メモリモジュールが、
ランダムアクセスメモリ(RAM)と、
前記RAMと前記外部インタフェースエンジンと前記内部インタフェースエンジンに結合され、前記内部インタフェースエンジンにより定められたキューに基づいて、バッファ区画を確立するRAMコントローラと
を有する内部インタフェース。
(23) (22)に記載の内部インタフェースであって、
前記バッファ区画が可変である内部インタフェース。
(24) 内部バスと、1つ以上の外部バスを有する外部バスアーキテクチャとの間のネットワークインタフェースであって、
第1のバスプロトコルに従って前記外部バスアーキテクチャで通信する第1の外部バスインタフェースと、第2のバスプロトコルに従って前記外部バスアーキテクチャで通信する第2の外部バスインタフェースとを有する外部インタフェースエンジンと、
ランダムアクセスメモリ(RAM)と、
前記RAMと前記外部インタフェースエンジンに結合され、複数のキューに基づいてバッファ区画を確立するRAMコントローラと、
前記第1の外部バスインタフェースと前記第2の外部バスインタフェースと前記RAMコントローラに結合され、前記複数のキューを定めるキューデータを生成するマルチチャネルのレジスタ構成と、
前記内部バスに結合された内部バスインタフェースアーキテクチャと、
前記内部バスインタフェースアーキテクチャと前記RAMコントローラに結合され、前記内部バスインタフェースアーキテクチャが前記内部バスを介して前記RAMと複数のアドレス可能位置との間でネットワークデータを直接転送することを可能にするダイレクトメモリアクセス(DMA)エンジンアーキテクチャと
を有するネットワークインタフェース。
(25) (24)に記載のネットワークインタフェースであって、
少なくとも1つのアドレス可能位置が、プロセッサのオンチップメモリの一部であり、前記プロセッサが前記内部バスに結合されたネットワークインタフェース。
(26) (25)に記載のネットワークインタフェースであって、
前記内部バスインタフェースアーキテクチャが、プロセッサのハンドオフプロトコルに従って前記プロセッサと通信するネットワークインタフェース。
(27) プロセッサ内部バスと、1つ以上の外部バスを有する外部バスアーキテクチャとの間のネットワークデータの転送に対応する方法であって、
1つ以上のバスプロトコルに従って前記外部バスアーキテクチャ上で通信し、
内部インタフェースにおいて前記内部バスと前記外部バスアーキテクチャとの間でネットワークデータをバッファし、
プロセッサのハンドオフプロトコルに従って前記プロセッサと前記内部バス上で通信することを有する方法。
(28) (27)に記載の方法であって、
前記ネットワークデータに対して複数のキューを定め、
前記複数のキューに従って中間メモリモジュールに前記ネットワークデータを収集することを更に有する方法。
(29) (28)に記載の方法であって、
前記内部インタフェースが前記内部バスを介して前記中間メモリモジュールと複数のアドレス可能位置との間で前記ネットワークデータを直接転送することを可能にすることを更に有する方法。
(30) (28)に記載の方法であって、
各キューに所定のクラスのネットワークデータを割り当て、
所定のクラス毎に送信の優先度を定めることを更に有する方法。
(31) (28)に記載の方法であって、
前記キューに基づいて前記中間メモリモジュールにバッファ区画を確立することを更に有する方法。
(32) (31)に記載の方法であって、
前記ネットワークデータのスループット要件に基づいて前記区画のサイズを変更することを更に有する方法。
(33) (27)に記載の方法であって、
第1のバスプロトコルに従って第1の外部バスインタフェースと前記外部バスアーキテクチャ上で通信し、
第2のバスプロトコルに従って第2の外部バスインタフェースと前記外部バスアーキテクチャ上で通信することを更に有する方法。
(34) (27)に記載の方法であって、
可変のビットオーダー又はバイトオーダーに従って前記ネットワークデータをバッファすることを更に有し、
前記可変のビットオーダー又はバイトオーダーは、前記外部バスアーキテクチャ上で通信するために前記第1のバスプロトコルが使用されているか、又は前記第2のバスプロトコルが使用されているかに前記内部バス上での通信を無関係にすることを可能にする方法。
(35) 1つ以上のバスプロトコルに従って外部バスアーキテクチャ上で通信し、
内部インタフェースにおいて内部バスと外部バスアーキテクチャとの間でネットワークデータをバッファし、
プロセッサのハンドオフプロトコルに従ってプロセッサと前記内部バス上で通信すること
をプロセッサにより実行可能な一式の命令を格納する機械読取可能媒体。
(36) (35)に記載の媒体であって、
前記命令が、
前記ネットワークデータに対して複数のキューを定め、
前記複数のキューに従って中間メモリに前記ネットワークデータを収集すること
を更に実行可能な媒体。
(37) (36)に記載の媒体であって、
前記命令が、
前記内部インタフェースが、前記内部バスを介して前記中間メモリモジュールと複数のアドレス可能位置との間で前記ネットワークを直接転送することを可能にすること
を更に実行可能な媒体。
(38) (36)に記載の媒体であって、
前記命令が、
各キューを所定のクラスのネットワークデータに割り当て、
所定のクラス毎に送信の優先度を定めること
を更に実行可能な媒体。
(39) 内部バスを有するプロセッサと、
1つ以上の外部バスを有する外部バスアーキテクチャと、
前記内部バスと前記外部バスアーキテクチャとの間のネットワークインタフェースと
を有するネットワーキングアーキテクチャであって、
前記ネットワークインタフェースは、前記外部バスアーキテクチャに結合された外部インタフェースエンジンを有し、
前記外部インタフェースエンジンは、1つ以上のバスプロトコルに従って前記外部バスアーキテクチャ上で通信し、
前記ネットワークインタフェースは、前記外部インタフェースエンジンと前記内部バスに結合され、前記内部バスと前記外部バスアーキテクチャとの間でネットワークデータをバッファする内部インタフェースを更に有するネットワーキングアーキテクチャ。
(40) (35)に記載のアーキテクチャであって、
前記内部バスに結合され、前記ネットワークデータに対して複数のキュー定める内部インタフェースエンジンと、
前記内部インタフェースエンジンと前記外部インタフェースエンジンに結合され、前記複数のキューに従って前記ネットワークデータを収集する中間メモリモジュールと
を有するアーキテクチャ。
12 プロセッサ
18 メモリ
32 内部インタフェース
34 内部インタフェースエンジン
36 中間メモリ
30 外部インタフェースエンジン

Claims (30)

  1. 1つ以上のバスプロトコルに従って外部バスアーキテクチャ上でネットワークデータを通信する外部インタフェースエンジンと、
    前記外部インタフェースエンジンとプロセッサインタフェース(NPI)に結合された内部インタフェースであり、内部インタフェースエンジンと、前記内部インタフェースエンジンに結合された中間メモリモジュールとを有し、前記内部インタフェースエンジンは、前記ネットワークデータに対して複数のキューを定め、前記複数のキューに基づいて区画に従って前記プロセッサインタフェースと前記外部バスアーキテクチャとの間で前記ネットワークデータをバッファする内部インタフェースと
    を有するネットワークインタフェース。
  2. 請求項1に記載のネットワークインタフェースであって、
    別のキューのデータは、前記中間メモリモジュールの独立のバッファ区画に分離されるネットワークインタフェース。
  3. 請求項2に記載のネットワークインタフェースであって、
    前記バッファ区画は、前記ネットワークデータの要件に基づいて変化し得るネットワークインタフェース。
  4. 請求項3に記載のネットワークインタフェースであって、
    前記バッファ区画は、前記ネットワークデータのスループット要件に基づいて変化し得るネットワークインタフェース。
  5. 請求項1に記載のネットワークインタフェースであって、
    前記内部インタフェースエンジンは、前記外部インタフェースエンジンと前記中間メモリモジュールに結合され、前記内部インタフェースエンジンが前記キューにマッピングされた複数のアドレス可能なネットワーキングプロセッサインタフェース位置と前記バッファ区画との間で前記ネットワークデータを直接転送することを可能にするマルチチャネルのレジスタ構成を有するネットワークインタフェース。
  6. 前記内部インタフェースエンジンが、
    前記外部インタフェースエンジンと前記中間メモリモジュールに結合されたマルチチャネルのレジスタ構成と、
    前記ネットワーキングプロセッサインタフェースと前記中間メモリモジュールに結合され、前記内部インタフェースエンジンが複数のアドレス可能なネットワーキングプロセッサインタフェース位置と前記中間メモリモジュールとの間で前記ネットワークデータを直接転送することを可能にするダイレクトメモリアクセス(DMA)エンジンアーキテクチャと
    を有するネットワークインタフェース。
  7. 請求項6に記載のネットワークインタフェースであって、
    前記DMAエンジンアーキテクチャが、
    マスターDMAエンジンと、
    スレーブDMAエンジンと
    を有するネットワークインタフェース。
  8. 請求項7に記載のネットワークインタフェースであって、
    前記マスターDMAエンジンが前記マルチチャネルのレジスタ構成に結合され、前記マスターDMAエンジンが前記レジスタ構成からキューの優先データとDMA設定情報を受信するネットワークインタフェース。
  9. 請求項6に記載のネットワークインタフェースであって、
    前記内部インタフェースエンジンが、
    NPIマスターインタフェースと、
    NPIスレーブインタフェースと、
    前記NPIスレーブインタフェースに結合され、前記複数のNPIアドレス可能位置に関するデータを格納する複数のローカル制御レジスタと
    を有するネットワークインタフェース。
  10. 請求項6に記載のネットワークインタフェースであって、
    前記マルチチャネルのレジスタ構成が、
    前記外部インタフェースエンジンと前記中間メモリモジュールに結合された一式の受信レジスタと、
    前記外部インタフェースエンジンと前記中間メモリモジュールに結合された一式の送信レジスタと、
    前記受信レジスタと前記送信レジスタに結合され、前記キューを優先順位付けて、前記ネットワークデータに対してDMA設定情報を定める制御ロジックと
    を有するネットワークインタフェース。
  11. 請求項1に記載のネットワークインタフェースであって、
    前記中間メモリモジュールが、
    ランダムアクセスメモリ(RAM)と、
    前記RAMと前記外部インタフェースエンジンと前記内部インタフェースエンジンに結合され、前記内部インタフェースエンジンにより定められたキューに基づいて、前記RAMの区画を確立するRAMコントローラと
    を有するネットワークインタフェース。
  12. 請求項11に記載のネットワークインタフェースであって、
    前記区画が可変であるネットワークインタフェース。
  13. 請求項11に記載のネットワークインタフェースであって、
    前記RAMコントローラが、ネットワークの無送信期間(dry spell)に前記RAMのネットワークデータが破棄されることを妨げるように、ハードウェアベースの無送信期間(dry spell)機構を使用するネットワークインタフェース。
  14. 請求項11に記載のネットワークインタフェースであって、
    前記RAMコントローラが、ネットワークのバーストによりネットワークデータが前記RAMによりドロップされることを妨げるように、ハードウェアベースのオーバーフロー機構を使用するネットワークインタフェース。
  15. 請求項1に記載のネットワークインタフェースであって、
    前記キューが、相互に無関係に前記ネットワークデータを転送することを容易にするネットワークインタフェース。
  16. 請求項1に記載のネットワークインタフェースであって、
    前記ネットワークデータがパケットを有し、
    前記内部インタフェースが、バッチに基づく処理モデルに基づいて前記パケットをバッファするネットワークインタフェース。
  17. 請求項16に記載のネットワークインタフェースであって、
    前記内部インタフェースがパケットをフレーム化するネットワークインタフェース。
  18. 請求項17に記載のネットワークインタフェースであって、
    前記外部インタフェースエンジンが、
    第1のバスプロトコルに従って前記外部バスアーキテクチャ上で通信する第1の外部バスインタフェースと、
    第2のバスプロトコルに従って前記外部バスアーキテクチャ上で通信する第2の外部バスインタフェースと
    を有するネットワークインタフェース。
  19. 請求項18に記載のネットワークインタフェースであって、
    前記第1の外部バスインタフェースが、第1の外部ダイレクトメモリアクセス(DMA)エンジンを有するネットワークインタフェース。
  20. 請求項18に記載のネットワークインタフェースであって、
    前記第2の外部バスインタフェースが、第2の外部ダイレクトメモリアクセス(DMA)エンジンを有するネットワークインタフェース。
  21. ネットワークインタフェースの外部インタフェースエンジンと内部バスとの間に配置された内部インタフェースであって、
    前記内部バスに結合され、ネットワークデータに対して複数のキューを定める内部インタフェースエンジンと、
    前記内部インタフェースエンジンと前記外部インタフェースエンジンに結合され、前記複数のキューに基づいて区画に従って前記ネットワークデータを収集する中間メモリモジュールと
    を有する内部インタフェース。
  22. 請求項21に記載の内部インタフェースであって、
    前記内部インタフェースエンジンが、
    前記外部インタフェースエンジンと前記中間メモリモジュールに結合されたマルチチャネルのレジスタ構成と、
    前記内部バスに結合された内部バスインタフェースアーキテクチャと、
    前記内部バスインタフェースと前記中間メモリモジュールに結合され、前記内部バスインタフェースアーキテクチャが前記内部バスを介して前記中間メモリモジュールと複数のアドレス可能位置との間で前記ネットワークデータを直接転送することを可能にするダイレクトメモリアクセス(DMA)エンジンアーキテクチャと
    を有する内部インタフェース。
  23. 請求項22に記載の内部インタフェースであって、
    少なくとも1つのアドレス可能位置がプロセッサの一部であり、前記プロセッサが前記内部バスに結合された内部インタフェース。
  24. 請求項23に記載の内部インタフェースであって、
    前記内部バスインタフェースアーキテクチャが、プロセッサのハンドオフプロトコルに従って前記内部バスに結合されたプロセッサと通信する内部インタフェース。
  25. 請求項21に記載の内部インタフェースであって、
    前記中間メモリモジュールが、
    ランダムアクセスメモリ(RAM)と、
    前記RAMと前記外部インタフェースエンジンと前記内部インタフェースエンジンに結合され、前記内部インタフェースエンジンにより定められたキューに基づいて、前記RAMの区画を確立するRAMコントローラと
    を有する内部インタフェース。
  26. 請求項25に記載の内部インタフェースであって、
    前記区画が可変である内部インタフェース。
  27. 請求項21に記載の内部インタフェースであって、
    別のキューのデータは、前記中間メモリモジュールの独立のバッファ区画に分離されるネットワークインタフェース。
  28. 請求項27に記載の内部インタフェースであって、
    前記バッファ区画は、前記ネットワークデータの要件に基づいて変化し得るネットワークインタフェース。
  29. 請求項28に記載の内部インタフェースであって、
    前記バッファ区画は、前記ネットワークデータのスループット要件に基づいて変化し得るネットワークインタフェース。
  30. 請求項21に記載の内部インタフェースであって、
    前記内部インタフェースエンジンは、前記外部インタフェースエンジンと前記中間メモリモジュールに結合され、前記内部インタフェースエンジンが前記キューにマッピングされた複数のアドレス可能な内部バス位置と前記バッファ区画との間で前記ネットワークデータを直接転送することを可能にするマルチチャネルのレジスタ構成を有するネットワークインタフェース。
JP2009135798A 2002-07-09 2009-06-05 パケット処理に対応する構成可能なマルチポートのマルチプロトコルのネットワークインタフェース Expired - Fee Related JP4745423B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/190,851 US7162564B2 (en) 2002-07-09 2002-07-09 Configurable multi-port multi-protocol network interface to support packet processing
US10/190,851 2002-07-09

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004519799A Division JP2005532632A (ja) 2002-07-09 2003-07-02 パケット処理に対応する構成可能なマルチポートのマルチプロトコルのネットワークインタフェース

Publications (2)

Publication Number Publication Date
JP2009238236A true JP2009238236A (ja) 2009-10-15
JP4745423B2 JP4745423B2 (ja) 2011-08-10

Family

ID=30114095

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004519799A Pending JP2005532632A (ja) 2002-07-09 2003-07-02 パケット処理に対応する構成可能なマルチポートのマルチプロトコルのネットワークインタフェース
JP2009135798A Expired - Fee Related JP4745423B2 (ja) 2002-07-09 2009-06-05 パケット処理に対応する構成可能なマルチポートのマルチプロトコルのネットワークインタフェース

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2004519799A Pending JP2005532632A (ja) 2002-07-09 2003-07-02 パケット処理に対応する構成可能なマルチポートのマルチプロトコルのネットワークインタフェース

Country Status (7)

Country Link
US (1) US7162564B2 (ja)
EP (1) EP1520231A2 (ja)
JP (2) JP2005532632A (ja)
CN (1) CN100401279C (ja)
AU (1) AU2003261104A1 (ja)
TW (1) TWI264647B (ja)
WO (1) WO2004006104A2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002003744A1 (en) * 2000-06-30 2002-01-10 Hughes Electronics Corporation Residential broadband communications device, and method of operating same
GB2371380B (en) * 2001-01-08 2003-03-12 Sun Microsystems Inc Service processor and system and method using a service processor
US7146480B2 (en) * 2003-01-23 2006-12-05 Hewlett-Packard Development Company, L.P. Configurable memory system
US20040169736A1 (en) * 2003-02-28 2004-09-02 Eastman Kodak Company Imaging method and system for associating images and metadata
US7456879B2 (en) * 2003-08-29 2008-11-25 Aptina Imaging Corporation Digital correlated double sampling using dual analog path
US20050135395A1 (en) * 2003-12-22 2005-06-23 Fan Kan F. Method and system for pre-pending layer 2 (L2) frame descriptors
FR2875026A1 (fr) * 2004-09-03 2006-03-10 St Microelectronics Sa Dispositif programmable d'interface de commande
US20060149870A1 (en) * 2004-12-30 2006-07-06 Randall Sears Parallel to USB bridge controller
KR100723496B1 (ko) * 2005-08-11 2007-06-04 삼성전자주식회사 통합 fifo 메모리를 사용하는 다중-레이트 입력데이터의 동기화기 및 방법
US7624310B2 (en) 2007-07-11 2009-11-24 Micron Technology, Inc. System and method for initializing a memory system, and memory device and processor-based system using same
EP2347417B1 (en) * 2008-09-03 2018-04-18 Marvell World Trade Ltd. Programming data into a multi-plane flash memory
CN101677293B (zh) * 2008-09-18 2012-12-12 华为技术有限公司 网络处理器和网络处理器访问数据结构的方法
US10713202B2 (en) * 2016-05-25 2020-07-14 Samsung Electronics Co., Ltd. Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports
CN115297001B (zh) * 2022-10-08 2022-12-16 湖南恩智测控技术有限公司 多端口多协议的通信方法及板卡

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04336729A (ja) * 1991-02-06 1992-11-24 Internatl Business Mach Corp <Ibm> 汎用アダプタ
JPH10326251A (ja) * 1997-05-01 1998-12-08 Smc Standard Microsyst Corp Usb周辺マイクロコントローラ
JP2000284872A (ja) * 1999-03-31 2000-10-13 Matsushita Electric Ind Co Ltd Usb伝送装置
US6327271B1 (en) * 1997-04-30 2001-12-04 Adaptec, Inc. Programmable reassembly of data received in an ATM network

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9602552D0 (en) * 1996-02-08 1996-04-10 Madge Networks Ltd Communication network end station and adaptor card
US5764896A (en) * 1996-06-28 1998-06-09 Compaq Computer Corporation Method and system for reducing transfer latency when transferring data from a network to a computer system
US6389479B1 (en) * 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6105079A (en) * 1997-12-18 2000-08-15 Advanced Micro Devices, Inc. Apparatus and method in a network interface device for selectively supplying long bit information related to a data frame to a buffer memory and a read controller for initiation of data transfers
US6240095B1 (en) * 1998-05-14 2001-05-29 Genroco, Inc. Buffer memory with parallel data and transfer instruction buffering
US6154796A (en) * 1998-09-03 2000-11-28 Advanced Micro Devices, Inc. Apparatus and method in a network interface device for storing receiving frame status in a holding register
US6516371B1 (en) * 1999-05-27 2003-02-04 Advanced Micro Devices, Inc. Network interface device for accessing data stored in buffer memory locations defined by programmable read pointer information
US6651107B1 (en) * 1999-09-21 2003-11-18 Intel Corporation Reduced hardware network adapter and communication
US6721872B1 (en) * 1999-10-25 2004-04-13 Lucent Technologies Inc. Reconfigurable network interface architecture
US6766389B2 (en) * 2001-05-18 2004-07-20 Broadcom Corporation System on a chip for networking

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04336729A (ja) * 1991-02-06 1992-11-24 Internatl Business Mach Corp <Ibm> 汎用アダプタ
US6327271B1 (en) * 1997-04-30 2001-12-04 Adaptec, Inc. Programmable reassembly of data received in an ATM network
JPH10326251A (ja) * 1997-05-01 1998-12-08 Smc Standard Microsyst Corp Usb周辺マイクロコントローラ
JP2000284872A (ja) * 1999-03-31 2000-10-13 Matsushita Electric Ind Co Ltd Usb伝送装置

Also Published As

Publication number Publication date
TW200407712A (en) 2004-05-16
WO2004006104A3 (en) 2004-08-19
US7162564B2 (en) 2007-01-09
JP2005532632A (ja) 2005-10-27
TWI264647B (en) 2006-10-21
EP1520231A2 (en) 2005-04-06
AU2003261104A8 (en) 2004-01-23
CN1666185A (zh) 2005-09-07
JP4745423B2 (ja) 2011-08-10
AU2003261104A1 (en) 2004-01-23
US20040010650A1 (en) 2004-01-15
WO2004006104A2 (en) 2004-01-15
CN100401279C (zh) 2008-07-09

Similar Documents

Publication Publication Date Title
JP4745423B2 (ja) パケット処理に対応する構成可能なマルチポートのマルチプロトコルのネットワークインタフェース
US6981074B2 (en) Descriptor-based load balancing
US7240141B2 (en) Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor
US7584316B2 (en) Packet manager interrupt mapper
US8490110B2 (en) Network on chip with a low latency, high bandwidth application messaging interconnect
US7277449B2 (en) On chip network
US7243172B2 (en) Fragment storage for data alignment and merger
US6925520B2 (en) Self-optimizing crossbar switch
EP2273378B1 (en) Data stream flow controller and computing system architecture comprising such a flow controller
US6715055B1 (en) Apparatus and method for allocating buffer space
KR100640515B1 (ko) 주변장치로부터 호스트 컴퓨터 시스템에 인터럽트를전달하기 위한 방법 및 장치
US11726928B2 (en) Network interface device with bus segment width matching
US7752281B2 (en) Bridges performing remote reads and writes as uncacheable coherent operations
EP1891503B1 (en) Concurrent read response acknowledge enhanced direct memory access unit
US20040100900A1 (en) Message transfer system
Comisky et al. A scalable high-performance DMA architecture for DSP applications
Shafer et al. A reconfigurable and programmable gigabit ethernet network interface card
Inoue et al. Low-latency and high bandwidth TCP/IP protocol processing through an integrated HW/SW approach
NZ716954A (en) Computing architecture with peripherals
NZ716954B2 (en) Computing architecture with peripherals

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100222

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110214

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110511

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

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4745423

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees