JP2016535337A - ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法 - Google Patents

ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法 Download PDF

Info

Publication number
JP2016535337A
JP2016535337A JP2016526069A JP2016526069A JP2016535337A JP 2016535337 A JP2016535337 A JP 2016535337A JP 2016526069 A JP2016526069 A JP 2016526069A JP 2016526069 A JP2016526069 A JP 2016526069A JP 2016535337 A JP2016535337 A JP 2016535337A
Authority
JP
Japan
Prior art keywords
dma
thread
packet
resource
access
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
JP2016526069A
Other languages
English (en)
Other versions
JP2016535337A5 (ja
JP6449872B2 (ja
Inventor
スリニバサン,アルビンド
シッダバスニ,アジョイ
ロドリゲス,エリサ
Original Assignee
オラクル・インターナショナル・コーポレイション
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
Priority claimed from US14/072,566 external-priority patent/US9489327B2/en
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Priority claimed from PCT/US2014/059749 external-priority patent/WO2015069408A1/en
Publication of JP2016535337A publication Critical patent/JP2016535337A/ja
Publication of JP2016535337A5 publication Critical patent/JP2016535337A5/ja
Application granted granted Critical
Publication of JP6449872B2 publication Critical patent/JP6449872B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

システムおよび方法は、ネットワーク環境における効率的なパケット処理をサポートできる。システムは、DMAリソースの1つ以上を含む直接メモリアクセス(DMA)リソースプールを含み得る。さらに、システムは、メモリにおける複数のパケットバッファを使用でき、各前記DMAリソースは、メモリにおけるパケットバッファのチェーンを指し示すことができる。ここで、パケットバッファのチェーンは、リンクリストデータ構造および/またはリニアアレイデータ構造に基づいて実装され得る。加えて、各前記DMAリソースは、パケット処理スレッドが、予め割当てられたスレッドキーを使用してパケットバッファのチェーンにアクセスすることを可能にする。

Description

著作権表示
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。この特許文献または特許開示は特許商標庁の特許ファイルまたは記録に記載されているため、著作権保有者は、その複写複製に対して異議はないが、その他の場合には何であれすべての著作権を保有する。
発明の分野
この発明は一般にコンピュータシステムに関し、特に、ミドルウェアおよびアプリケーション実行のための工学システムに関する。
背景
より大きいクラウド・コンピューティング・アーキテクチャが導入されるにつれて、従来のネットワークおよびストレージに関する性能および管理上の障害が、著しい問題になっている。オラクル工学システムなどの工学システムは、優れた処理速度、著しくより速いデプロイメント、綿密な分析用の即時のビジュアル、および扱いやすいビッグデータ能力を提供できる。これは、この発明の実施形態が取組むよう意図される一般領域である。
概要
ここに説明されるのは、ネットワーク環境における効率的なパケット処理をサポートできるシステムおよび方法である。システムは、複数のソフトウェアスレッドにおける各ソフトウェアスレッドにスレッドキーを割当てるように動作するスレッドスケジューリングエンジンを含み得る。さらに、システムは、ネットワーク環境においてパケットを処理するために使用可能な直接メモリアクセス(direct memory access:DMA)リソースのプールを含み得る。加えて、前記各ソフトウェアスレッドは、割当てられたスレッドキーを提示することによって、DMAリソースのプールにおけるあるDMAリソースへのアクセスを要求するように動作し、同じスレッドキーを使用して、単一のソフトウェアスレッドが複数のDMAリソースにアクセスすることが可能にされる。
ここに説明されるのは、ネットワーク環境における効率的なパケット処理をサポートできるシステムおよび方法である。システムは、DMAリソースの1つ以上を含む直接メモリアクセス(DMA)リソースプールを含み得る。さらに、システムは、メモリにおける複数のパケットバッファを使用でき、各前記DMAリソースは、メモリにおけるパケットバッファのチェーンを指し示すことができる。ここで、パケットバッファのチェーンは、リンクリストデータ構造および/またはリニアアレイデータ構造に基づいて実装され得る。加えて、各前記DMAリソースは、パケット処理スレッドが、予め割当てられたスレッドキーを使用してパケットバッファのチェーンにアクセスすることを可能にする。
この発明の一実施形態に従った、ネットワーク環境における高性能ネットワーキング装置をサポートする図である。 この発明の一実施形態に従った、ネットワーキング装置における効率的なパケット処理モデルをサポートする図である。 この発明の一実施形態に従った、ネットワーキング装置におけるパケット処理モデルをサポートする図である。 この発明の一実施形態に従った、ネットワーク環境における効率的なパケット処理をサポートするための例示的なフローチャートである。 この発明の一実施形態に従った、ネットワーキング装置におけるパケット処理のための効率的なバッファ利用をサポートする図である。 この発明の一実施形態に従った、ネットワーキング装置におけるパケット処理のためにバッファチェーンを使用する図である。 この発明の一実施形態に従った、ネットワーキング装置におけるパケット処理のためにバッファの1つ以上のリンクリストを使用する図である。 この発明の一実施形態に従った、ネットワーキング装置におけるパケット処理をサポートするために1つ以上のリニアアレイを使用する図である。 この発明の一実施形態に従った、ネットワーキング装置におけるフレキシブルなパケット処理をサポートするためにリンクリストとリニアアレイとの混合を使用する図である。 この発明の一実施形態に従った、ネットワーキング装置におけるパケット処理のための効率的なバッファ利用をサポートするための例示的なフローチャートである。
詳細な説明
この発明を、限定のためではなく例示のために、添付図面の図に示す。図中、同じ参照符号は同様の要素を示す。なお、この開示における「ある」または「1つの」または「いくつかの」実施形態への言及は、必ずしも同じ実施形態に対するものではなく、そのような言及は「少なくとも1つ」という意味である。
以下のようなこの発明の説明は、高性能ネットワーキング装置のために、一例としてインフィニバンド(InfiniBand:IB)ネットワークスイッチを使用する。他のタイプの高性能ネットワーキング装置が限定なしで使用可能であることは、当業者には明らかであろう。
ここに説明されるのは、ネットワーク環境におけるマルチスレッドの直接メモリアクセス(DMA)処理をサポートすることができるシステムおよび方法である。この発明の一実施形態によれば、このシステムは、DMA処理がフレキシブルであること、および低いメモリフットプリントを有することを可能にする。
高性能ネットワーキング装置
図1は、この発明の一実施形態に従った、ネットワーク環境における高性能ネットワーキング装置をサポートする図を示す。図1に示すように、ネットワーク環境100においてパケットフローを差し向けるために、ネットワークファブリック102においてネットワークスイッチなどの高性能ネットワーキング装置101を使用することができる。
この発明の一実施形態によれば、(たとえば、制御パケットおよびデータパケット双方を含む)パケット121〜124などのパケットを処理するために、ネットワーキング装置101において、組込プロセッサ、たとえばDMAエンジン110を使用することができる。ここで、これらのパケット121〜124の送受信は、ネットワーキング装置101のネットワークポート111〜112で起こり得る。
図1に示すように、ネットワーキング装置101は、仮想化ファブリックをサポートすることができる。システムは、仮想化アプリケーション108が、1つ以上のホストマシン103〜104を使用してサポートされる1つ以上の仮想マシン(virtual machine:VM)105〜107上で動くことを可能にする。
さらに、ネットワーキング装置101が仮想化ファブリックをサポートする場合、制御パケット121〜124を処理するためのスループット要件は、異なる仮想化アプリケーション108の要件に従って変わる場合がある。図1に示すように、ネットワークファブリック102は、さまざまなホスト103〜104/VM105〜107からの複数のパケットストリームを差し向けるために、ネットワーキング装置101を使用することができる。
仮想化アプリケーション108をサポートするために、さまざまなVM105〜107からのこれらの異なる制御パケットストリームは、パケット処理のために、ネットワーキング装置101におけるハードウェアリソースにマッピングされ得る。この発明の一実施形態によれば、DMAエンジン110などの組込プロセッサは、異なるタイプのパケット処理を行なうことができ、多数のソフトウェアスレッド(または作業待ち行列)を実行することができる。
かなりのCPU能力およびシステムメモリを有し得る従来のネットワークインターフェイスカード(network interface card:NIC)上で動くDMAエンジンとは異なり、組込システムは、限られたCPU能力およびシステムメモリを有する場合がある。このため、ソフトウェアスレッドを組込システムにおけるハードウェアリソースにマッピングすることは、著しいソフトウェア性能ペナルティを招く場合がある。たとえば、これらの性能ペナルティは、ソフトウェアスレッド・ロッキングオーバーヘッド、パケットバッファ管理の形、および他の形で現われる場合があり、それは、利用可能なCPU能力をさらに低下させ得る。
この発明の一実施形態によれば、システムは、ネットワーク環境100における効率的なパケット処理モデルをサポートするためのフレームワークを提供することができる。このフレームワークは、ロッキングおよびスレッド競合なく、多数のソフトウェアスレッドを、限られた一組のハードウェアDMA処理スレッドにマッピングすることができる。加えて、システムは、ネットワーキング装置101におけるパケット処理のためのバッファ利用を最適化することができる。
パケット処理モデル
図2は、この発明の一実施形態に従った、ネットワーキング装置における効率的なパケット処理をサポートする図を示す。図2に示すように、ハードウェアは空いているDMAリソースプール210を提供でき、それは1つ以上のDMAリソース211〜213を含む。
この発明の一実施形態によれば、DMAリソース211〜213は、データ移動に使用されるDM識別子、バッファ管理およびDMAエンジンを表わし得る。たとえば、DMAリソース211〜213は、パケット転送が起こり得る物理的媒体を表わす1つ以上のDMAエンジン220に結合され得る。
図2に示すように、システムは、効率的なパケット処理モデル200を提供することができ、それは、多数のソフトウェアスレッド202を、限られた一組のハードウェアDMA処理スレッド201にマッピングすることができる。DMAリソース211〜213は、必要に応じてさまざまなソフトウェアスレッド221〜229のためにオンデマンドで割当てられ得る。また、DMAリソース211〜213は、ソフトウェアスレッド221〜229によって動的に放棄され得る。
たとえば、DMAリソース211〜213は、各DMAエンジンが維持できるデータレートに従って割当てられ得る。ここで、DMAリソース211〜213の割当ては、所与のDMAエンジン上で動くソフトウェアスレッドの数に依存していなくてもよい。これは、トラフィック処理が複数のソフトウェアスレッド中に広がるかもしれず、これらのソフトウェアスレッドの各々は動作処理時間の間のみアクティブであるかもしれないためである。
図3は、この発明の一実施形態に従った、ネットワーキング装置における効率的なパケット処理モデルをサポートする図を示す。図3に示すように、ネットワーキング装置300におけるソフトウェアスレッド301〜309の各々に異なるスレッドキー(たとえば、キー0 311〜キー9 319)を割当てるために、スレッドスケジューラ310などのスレッドスケジューリングエンジンを使用することができる。ここで、スレッドスケジューラ310は、標準リアルタイムO/SまたはカスタマイズされたO/Sに基づいて構築可能である。
この発明の一実施形態によれば、あるソフトウェアスレッドがネットワークデータ転送の実行を必要とする場合、そのソフトウェアスレッドは、割当てられたスレッドキーをあるDMAリソースに提示することによって、そのDMAリソースへのアクセを要求できる。図3に示すように、各ソフトウェアスレッド301〜309はスレッドキーをリソースマネージャ330に提示することができ、それは、異なるソフトウェアスレッド301〜309のためにDMAリソースを割当てるために使用される。
たとえば、スレッドID Thid0を有するソフトウェアスレッド301は、DMAリソースプール320からあるDMAリソースを割当てるために、割当てられたスレッドキーであるキー0 311を使用できる。また、スレッドID Thid1を有するソフトウェアスレッド302は、DMAリソースプール320からあるDMAリソースを割当てるために、割当てられたスレッドキーであるキー1 312を使用できる。同様に、スレッドID Thid9を有するソフトウェアスレッド309は、DMAリソースプール320からあるDMAリソースを割当てるために、割当てられたスレッドキーであるキー9 319を使用できる。
DMAリソースプール320におけるいずれかのDMAリソースが空いている場合、その利用可能なDMAリソースを、要求しているソフトウェアスレッドに割当てることができる。たとえば、割当てられたDMAリソースは、要求しているソフトウェアスレッドに関連付けられた割当てられたスレッドキーにマッピングされ得る。一方、DMAリソースが別のソフトウェアスレッドにすでに割当てられていた場合、要求しているソフトウェアスレッドは、DMAリソースへのアクセスを防止(または拒否)されるかもしれない。加えて、システムは、要求しているソフトウェアスレッドのために適切なステータスを設定することができる。さらに、すべてのDMAリソースが使用されている場合、要求しているソフトウェアスレッドは、DMAリソースプール320におけるあるDMAリソースが空くまで待たなければならないかもしれない。
この発明の一実施形態によれば、DMAリソースがソフトウェアスレッドに割当てられた後、割当てられたスレッドキーを使用して、要求しているソフトウェアスレッドはさらに、それが必要とするようにDMAリソースを構成することができる。たとえば、要求しているソフトウェアスレッドは、(たとえば、リング構造の代わりにリンクリストを使用して)識別子特性を設定することができる。
加えて、必要であれば、単一のソフトウェアスレッドが複数のDMAリソースに対して要求を行なうことができる。システムは、割当てられた同じスレッドキーに基づいて、空いているプール320において利用可能な複数のDMAリソース321〜323を、要求しているソフトウェアスレッドに割当てることができる。さらに、これらのDMAリソース321〜323が一旦割当てられると、ソフトウェアスレッドは、それが複数の割当てられたリソース間の順序付けを維持したいかどうかを決定することができる。たとえば、順序付けが必要とされる場合、ソフトウェアスレッドは、ハードウェアに依存リストを提供することができる。
この発明の一実施形態によれば、システムは、複数のスレッドが同時に(パケットバッファを含む)DMAリソース321〜323にアクセスすることを可能にする。各スレッドが異なるスレッドキーを有することを可能にすることにより、システムは、相互排除ロックまたはセマフォを実装する必要なく、ネットワークファブリックからパケットを送受信することができる。
この発明の一実施形態によれば、スレッドキースペースは、多数の可能なソフトウェアスレッドをサポートするために多数のエントリを含むように構成可能である。このため、システムは、多数のソフトウェアスレッドを、限られた一組のハードウェアリソースにマッピングすることができる。
図4は、この発明の一実施形態に従った、ネットワーク環境における効率的なパケット処理をサポートするための例示的なフローチャートを示す。図4に示すように、ステップ401で、システムはスレッドスケジューリングエンジンを提供でき、前記スレッドスケジューリングエンジンは、複数のソフトウェアスレッドにおける各ソフトウェアスレッドにスレッドキーを割当てるように動作する。さらに、ステップ402で、システムは、ネットワーク環境においてパケットを処理するように動作する直接メモリアクセス(DMA)リソースのプールを提供できる。次に、ステップ403で、前記各ソフトウェアスレッドは、割当てられたスレッドキーを提示することによって、DMAリソースのプールにおけるあるDMAリソースへのアクセスを要求するように動作する。
パケット処理のための効率的なバッファ利用
図5は、この発明の一実施形態に従った、ネットワーキング装置におけるパケット処理のための効率的なバッファ利用をサポートする図である。図5に示すように、DMAリソースプール520におけるDMAリソース521〜523は、1つ以上のバッファチェーン531〜533に関連付けられることができ、それらは各々、ネットワーキング装置500においてさまざまな数のパケットバッファを含むことができる。
この発明の一実施形態によれば、あるDMAリソースが初期化されると、そのDMAリソースは空のコンテナを指し示すことができ、それはパケットバッファを含むために使用可能である。さらに、さまざまなパケットバッファが配置される、メモリにおけるバッファチェーン531〜533は、リンクリストまたはリニアアレイの形をとり得る。固定リング構造とは異なり、バッファチェーン531〜533のサイズは増大可能である(メモリ制限に従う)。加えて、バッファチェーン531〜533を使用して、システムは、待ち行列構造へのマルチスレッドアクセスを可能にする。
図5に示すように、ソフトウェアスレッド501〜509は、(キー0 511〜キー9 519などの)予め割当てられたスレッドキーを提示することによって、バッファチェーン531〜533におけるパケットバッファにアクセスすることを要求できる。たとえば、ソフトウェアスレッド501は、予め割当てられたスレッドキーであるキー0 511を使用して、バッファチェーン531におけるパケットバッファにアクセスできる。また、ソフトウェアスレッド502は、予め割当てられたスレッドキーであるキー1 512を使用して、バッファチェーン532におけるパケットバッファにアクセスできる。
さらに、パケット処理ソフトウェアスレッドが2組以上のバッファチェーンを処理する必要がある場合(たとえば、第1の組のパケット処理待ち行列が終わる前に第2の組のパケット処理待ち行列をスケジューリングする場合)、要求しているソフトウェアスレッドは、同じハードウェアDMAリソースプール520から別のDMAリソースを得て使用することができる。図5に示すように、ソフトウェアスレッド501は、予め割当てられた同じスレッドキーであるキー0 511を使用して、バッファチェーン533におけるパケットバッファにアクセスすることを要求できる。
加えて、複数のパケット処理プロセス間で順序付けが必要とされる場合、システムは、構成の一部としてリソース依存数を設定することができる。依存リストが設定される場合、ハードウェアプロセッサはパケット処理をシリアル化することができる。その他の場合、システムは任意の態様でパケットを処理してもよい。
さらに、ある特定のタスクが、ハードウェアスレッドによる潜在的に並列の処理を必要とするとともに、結果が順番に送信されることも必要とする場合、システムは、依存属性セットを有するDMAエンジンにタスクを発送することができる。このため、システムは、DMAリソースをオンデマンドで割当てるとともに、作業をパイプライン化することができ、アイドルCPU時間が利用可能な場合にはそれを利用することができる。
この発明の一実施形態によれば、各ソフトウェアスレッド501〜509には(キー0 511〜キー9 519などの)スレッドキーが予め割当てられているため、システムは、相互排除ロックまたはセマフォを実装する必要なく、異なるバッファチェーン531〜533におけるパケットバッファに同時にアクセスするように複数のスレッドをセットアップすることができる。これは、ネットワークファブリックからのパケットの送信および受信双方について当てはまり得る。また、独立した流れが送信されている場合、上述のスキームは、パケットがバッチ状で直列または並列にハードウェアに渡されることを可能にする。
図6は、この発明の一実施形態に従った、ネットワーキング装置におけるパケット処理のためにバッファチェーンを使用する図を示す。図6に示すように、ネットワーキング装置600において複数のソフトウェアスレッド601〜609を空いているプール620における別々のDMAリソースにマッピングするために、リソースマネージャ610が使用可能である。
空いているプール620におけるDMAリソースの各々は、RID0 621、RID3 622、およびRIDN 623などのリソースIDに関連付けられ得る。さらに、各DMAリソースは、異なるバッファチェーンにアクセスするために使用可能であるスレッドキー、および/または、異なるバッファチェーンを割当てて管理するために使用可能であるスレッドIDを保持することができる。
たとえば、(キー0というスレッドキーを有する)ソフトウェアスレッド0 601は、DMAリソースの割当てを要求するために、そのスレッドキー(キー0)をリソースマネージャ610に提示することができる。リソースマネージャ610は次に、スレッドキー(キー0)を、利用可能なDMAリソース、たとえばRID0 621に提供することができる。さらに、スレッド601がより多くのハードウェアリソースを必要とする場合、リソースマネージャ610は、スレッドキー(キー0)を、別の利用可能なDMAリソース、たとえばRIDN 623に提供することができる。
次に、リソースマネージャ610は、DMAリソースのステータスおよびすべての関連するリソース番号(たとえばRID0 621およびRIDN 623)をソフトウェアスレッド601に戻すことができる。このため、ソフトウェアスレッド0 601は、バッファ631〜633および637〜639のチェーン双方へのアクセスを有することができ、パケット処理終了後に関連するDMAリソースの割当てを解除することができる。
同様に、(キー1というスレッドキーを有する)ソフトウェアスレッド1 602は、DMAリソースの割当てを要求するために、そのスレッドキー(キー1)をリソースマネージャ610に提示することができる。リソースマネージャ610は次に、スレッドキー(キー1)を、利用可能なDMAリソース、たとえばRID3 622に提供することができる。このため、ソフトウェアスレッド1 602は、バッファ634〜636のチェーンへのアクセスを有することができる。
図7は、この発明の一実施形態に従った、ネットワーキング装置におけるパケット処理のためにバッファの1つ以上のリンクリストを使用する図を示す。図7に示すように、ネットワーキング装置700における空いているDMAリソースプール710は、1つ以上のDMAリソースを維持することができ、それらは各々、RID、順序、ヘッドアドレス、およびヘッド長などのいくつかの異なる特性に関連付けられ得る。ここで、RID特性は、バッファチェーンに割当てられたリソース番号を含むことができ、順序特性は、ある特定のバッファチェーンが、別のバッファチェーンに続いて処理されるように構成されることを示すことができる。
図7に示すように、システムは、さまざまなパケットを保持するためのバッファチェーンを実装するために、リンクリストデータ構造を使用することができる。たとえば、リソース番号1を有するDMAリソースは、ヘッドアドレスh1を有するパケットバッファ711から始まるパケットバッファのリンクリストを指し示すことができる。ここで、パケットバッファ711は識別子と連結される。リンクリスト内で、パケットバッファ711は次のパケットバッファ712を指し示すことができ、パケットバッファ712は次のパケットバッファ713を指し示すことができる(パケットバッファ712およびパケットバッファ713の各々も、識別子と連結される)。
加えて、リソース番号2を有するDMAリソースは、ヘッドアドレスh2を有するパケットバッファ714から始まるパケットバッファのリンクリストを指し示すことができる。ここで、パケットバッファ714は識別子と連結され、別のパケットバッファ715を指し示すことができる。
さらに、リソース番号1を有するDMAリソースにアクセスしているソフトウェアスレッドは、追加のハードウェアリソースにアクセスすることを要求してもよい。たとえば、ソフトウェアスレッドは、リソース番号32を有するDMAリソースにアクセスでき、それは、ヘッドアドレスh32を有するパケットバッファ716から始まるパケットバッファのリンクリストを指し示す。同様に、パケットバッファ716は識別子と連結され、リンクリストにおける他のパケットバッファ717および718を指し示すことができる。
また、図7に示すように、システムは、リソース番号32を有するDMAリソースのための順序値を1に設定することにより、(パケットバッファ713からパケットバッファ716を指し示す矢印720として示すように)パケットバッファ711〜713を処理してからパケットバッファ716〜718を処理するよう、ハードウェアに強制することができる。
この発明の一実施形態によれば、リンクリストに基づいたスキームを使用して、システムは、メモリの限られたフットプリントを提供でき、それは組込システムの場合には有利になり得る。たとえば、Linux(登録商標)環境のためのパケットバッファのリンクリストの実装は、単純明快であり得る。なぜなら、パケットのLinux実装はリンクリストに基づいているためである。このため、システムは、Linux環境におけるパケットのリンクリストを、メモリにおけるパケットバッファのハードウェアリンクリストへと直接変換することができる。
さらに、実装はOSから独立し得る。たとえば、システムは、あらゆる汎用OS、カスタムOS、または組込RTOS上で実装され得る。
図8は、この発明の一実施形態に従った、ネットワーキング装置におけるパケット処理をサポートするために1つ以上のリニアアレイを使用する図を示す。図8に示すように、ネットワーキング装置800における空いているDMAリソースプール810は、1つ以上のDMAリソースを維持することができる。さらに、各DMAリソースは、RID、順序、ヘッドアドレス、およびヘッド長などのいくつかの異なる特性に関連付けられ得る。ここで、RID特性は、バッファチェーンに割当てられたリソース番号を含むことができ、順序特性は、ある特定のバッファチェーンが、別のバッファチェーンに続いて処理されるように構成されることを示すことができる。
この発明の一実施形態によれば、システムは、さまざまなパケットを保持するためのバッファチェーンを実装するために、識別子のリニアアレイを使用することができる。さらに、識別子のリニアアレイにおける各識別子は、別個のパケットバッファを指し示すことができ、システムは、異なるパケット識別子から各パケットバッファに達することができる。
図8に示すように、リソース番号2を有するDMAリソースは、ヘッドアドレスh2を有する識別子811のリニアアレイを指し示すことができる。また、リソース番号3を有するDMAリソースは、ヘッドアドレスh3を有する識別子812のリニアアレイを指し示すことができる。ここで、識別子811〜812のリニアアレイはパケットバッファと連結されていない。
加えて、システムは、パケットバッファが予め構成された順序に従って処理されることを可能にする。たとえば、システムは、(識別子811のリニアアレイから識別子812のリニアアレイを指し示す矢印820として示すように)識別子811のリニアアレイに関連付けられたパケットバッファを処理してから識別子812のリニアアレイに関連付けられたパケットバッファを処理するよう、ハードウェアエンジンに強制するために、リソース番号3を有するDMAリソースのための順序値を2に設定する。
この発明の一実施形態によれば、システムは、各パケットを連続して別個に扱う必要なく、複数のパケットを1回で扱うことができる。このため、識別子のリニアアレイを使用して、システムは少ない待ち時間を提供でき、それは、たとえばキャッシュ効率的なスキームとして有利であり得る。
図9は、この発明の一実施形態に従った、ネットワーキング装置におけるフレキシブルなパケット処理をサポートするためにリンクリストとリニアアレイとの混合を使用する図を示す。図9に示すように、ネットワーキング装置900における空いているDMAリソースプール910は、1つ以上のDMAリソースを維持することができる。さらに、各DMAリソースは、RID、順序、ヘッドアドレス、ヘッド長、およびアレイ/リンクなどのいくつかの異なる特性に関連付けられ得る。ここで、RID特性は、バッファチェーンに割当てられたリソース番号を含むことができ、順序特性は、ある特定のバッファチェーンが、別のバッファチェーンに続いて処理されるように構成されることを示すことができる。
この発明の一実施形態によれば、空いているプール910における別々のDMAリソースが、別々のタイプのバッファチェーンに関連付けられ得る。
たとえば、リソース番号2を有するDMAリソースは、ヘッドアドレスh2を有する識別子911のリニアアレイを指し示すことができ、識別子は各々、パケットを指し示すことができる。同様に、リソース番号3を有するDMAリソースは、ヘッドアドレスh3を有する識別子912のリニアアレイを指し示すことができ、識別子は各々、パケットを指し示すことができる。
加えて、リソース番号1に関連付けられたDMAリソースは、ヘッドアドレスh1を有するパケットバッファ913から始まるパケットバッファのリンクリストを指し示すことができる。リンクリストデータ構造内で、識別子と連結するパケットバッファ913は、別のパケットバッファ915を指し示すことができる。同様に、リソース番号32に関連付けられたDMAリソースは、ヘッドアドレスh32を有するパケットバッファ917から始まるパケットバッファのリンクリストを指し示すことができる。また、識別子と連結するパケットバッファ917は、リンクリストデータ構造における他のパケットバッファ918および919を指し示すことができる。
さらに、システムは、(識別子911のリニアアレイから識別子912のリニアアレイを指し示す矢印921、およびパケットバッファ915からパケットバッファ917を指し示す矢印922として示すように)パケットバッファが予め構成された順序に従って処理されることを可能にする。
この発明の一実施形態によれば、システムは、要求しているソフトウェアスレッドのためにどのタイプのバッファチェーンを割当てることができるかを動的に判断することができる。そのような判断は、特定のパケット処理スレッドのメモリ使用要件と待ち時間要件とのバランスに基づき得る。たとえば、特定のパケット処理スレッドがメモリ使用により敏感な場合、システムは、リンクリストに基づいたバッファチェーンを割当てることができる。一方、特定のパケット処理スレッドが待ち時間により敏感な場合、システムは、リニアアレイに基づいたバッファチェーンを割当てることができる。
図10は、この発明の一実施形態に従った、ネットワーキング装置におけるパケット処理のための効率的なバッファ利用をサポートするための例示的なフローチャートを示す。図10に示すように、ステップ1001で、システムは、ネットワーク装置上のメモリにおける複数のパケットバッファを提供できる。さらに、ステップ1002で、システムは、直接メモリアクセス(DMA)リソースプールを提供でき、前記DMAリソースプールはDMAリソースの1つ以上を含み、前記DMAリソースプールにおける各前記DMAリソースは、メモリにおけるパケットバッファのチェーンを指し示す。次に、ステップ1003で、各前記DMAリソースは、パケット処理スレッドが、パケット処理スレッドに予め割当てられたスレッドキーを使用して、メモリにおけるパケットバッファのチェーンにアクセスすることを可能にする。
この発明の一実施形態は、ネットワーク装置における効率的なパケット処理をサポートするためのシステムであって、ネットワーク装置上のメモリにおける複数のパケットバッファと、直接メモリアクセス(DMA)リソースプールとを含み、前記DMAリソースプールはDMAリソースの1つ以上を含み、前記DMAリソースプールにおける各前記DMAリソースは、メモリにおけるパケットバッファのチェーンを指し示し、各前記DMAリソースは、パケット処理スレッドが、パケット処理スレッドに予め割当てられたスレッドキーを使用して、メモリにおけるパケットバッファのチェーンにアクセスすることを可能にする、システムを含む。
上に提供されるようなシステムでは、前記パケット処理スレッドは、予め割当てられた同じスレッドキーを使用して、メモリにおけるパケットバッファの複数のチェーンにアクセスするように動作する。
上に提供されるようなシステムでは、前記パケット処理スレッドは、前記パケットバッファの複数のチェーンにおけるパケットを処理するために依存リストを設定するように動作する。
上に提供されるようなシステムでは、複数のパケット処理スレッドが、メモリにおけるパケットバッファの別々のチェーンに同時にアクセスするように動作する。
上に提供されるようなシステムでは、少なくとも1つのDMAリソースは、パケットバッファのリンクリストを指し示す。
上に提供されるようなシステムでは、リンクリストにおける各パケットバッファは、識別子と連結している。
上に提供されるようなシステムでは、少なくとも1つのDMAリソースは、識別子のリニアアレイを指し示す。
上に提供されるようなシステムでは、識別子のリニアアレイにおける各識別子は、パケットバッファを指し示す。
上に提供されるようなシステムでは、複数のパケットバッファは、リンクリストとリニアアレイとの混合に基づいて構成される。
上に提供されるようなシステムでは、前記DMAリソースプールは、パケット処理スレッドがリンクリストに基づいてバッファのチェーンにアクセスすべきか、またはリニアアレイに基づいてバッファのチェーンにアクセスすべきかを動的に判断するように動作する。
この発明の一実施形態は、ネットワーク環境における効率的なパケット処理をサポートするための方法であって、ネットワーク装置上のメモリにおける複数のパケットバッファを提供するステップと、直接メモリアクセス(DMA)リソースプールを提供するステップとを含み、前記DMAリソースプールはDMAリソースの1つ以上を含み、前記DMAリソースプールにおける各前記DMAリソースは、メモリにおけるパケットバッファのチェーンを指し示し、前記方法はさらに、各前記DMAリソースを介して、パケット処理スレッドが、パケット処理スレッドに予め割当てられたスレッドキーを使用して、メモリにおけるパケットバッファのチェーンにアクセスすることを可能にするステップを含む、方法を含む。
上に提供されるような方法は、前記パケット処理スレッドが、予め割当てられた同じスレッドキーを使用して、メモリにおけるパケットバッファの複数のチェーンにアクセスすることを可能にするステップをさらに含む。
上に提供されるような方法は、前記パケット処理スレッドが、前記パケットバッファの複数のチェーンにおけるパケットを処理するために依存リストを設定することを可能にするステップをさらに含む。
上に提供されるような方法は、複数のパケット処理スレッドが、メモリにおけるパケットバッファの別々のチェーンに同時にアクセスすることを可能にするステップをさらに含む。
上に提供されるような方法は、少なくとも1つのDMAリソースが、パケットバッファのリンクリストを指し示すことを可能にするステップをさらに含む。
上に提供されるような方法は、リンクリストにおける各パケットバッファが、識別子と連結することを可能にするステップをさらに含む。
上に提供されるような方法は、少なくとも1つのDMAリソースが、識別子のリニアアレイを指し示すことを可能にするステップをさらに含む。
上に提供されるような方法は、識別子のリニアアレイにおける各識別子が、パケットバッファを指し示すことを可能にするステップをさらに含む。
上に提供されるような方法は、リンクリストとリニアアレイとの混合に基づいて複数のパケットバッファを構成するステップと、パケット処理スレッドがリンクリストに基づいてバッファのチェーンにアクセスすべきか、またはリニアアレイに基づいてバッファのチェーンにアクセスすべきかを動的に判断するステップとをさらに含む。
この発明の一実施形態は、実行されると、以下のステップをシステムに行なわせる命令を格納した、非一時的なマシン読取可能記憶媒体であって、前記以下のステップは、ネットワーク装置上のメモリにおける複数のパケットバッファを提供するステップと、直接メモリアクセス(DMA)リソースプールを提供するステップとを含み、前記DMAリソースプールはDMAリソースの1つ以上を含み、前記DMAリソースプールにおける各前記DMAリソースは、メモリにおけるパケットバッファのチェーンを指し示し、前記以下のステップはさらに、各前記DMAリソースを介して、パケット処理スレッドが、パケット処理スレッドに予め割当てられたスレッドキーを使用して、メモリにおけるパケットバッファのチェーンにアクセスすることを可能にするステップを含む、非一時的なマシン読取可能記憶媒体を含む。
この発明の多くの特徴は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せにおいて、それを使用して、またはその助けを借りて行なわれ得る。従って、この発明の特徴は、(たとえば、1つ以上のプロセッサを含む)処理システムを使用して実現され得る。
この発明の特徴は、ここに提示された特徴のうちのいずれかを行なうように処理システムをプログラミングするために使用可能な命令を格納した記憶媒体またはコンピュータ読取可能媒体であるコンピュータプログラム製品において、それを使用して、またはその助けを借りて実現され得る。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリ装置、磁気カードまたは光カード、ナノシステム(分子メモリICを含む)、もしくは、命令および/またはデータを格納するのに好適な任意のタイプの媒体または装置を含み得るものの、それらに限定されない。
マシン読取可能媒体のうちのいずれかに格納されて、この発明の特徴は、処理システムのハードウェアを制御するために、および処理システムがこの発明の結果を利用する他の機構とやりとりすることを可能にするために、ソフトウェアおよび/またはファームウェアに取込まれ得る。そのようなソフトウェアまたはファームウェアは、アプリケーションコード、装置ドライバ、オペレーティングシステム、および実行環境/コンテナを含み得るものの、それらに限定されない。
この発明の特徴はまた、たとえば、特定用途向け集積回路(application specific integrated circuit:ASIC)などのハードウェアコンポーネントを使用して、ハードウェアにおいて実現されてもよい。ここに説明された機能を行なうようにハードウェアステートマシンを実現することは、関連技術の当業者には明らかであろう。
加えて、この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取可能記憶媒体を含む、1つ以上の従来の汎用または特殊デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
この発明のさまざまな実施形態が上述されてきたが、それらは限定のためではなく例示のために提示されたことが理解されるべきである。この発明の精神および範囲から逸脱することなく、形および詳細のさまざまな変更を行なうことができる、ということは、関連技術の当業者には明らかであろう。
この発明は、特定された機能およびそれらの関係の実行を示す機能的構築ブロックの助けを借りて上述されてきた。説明の便宜上、これらの機能的構築ブロックの境界はしばしば、ここに任意に規定されてきた。特定された機能およびそれらの関係が適切に実行される限り、代替的な境界を規定することができる。このため、そのようないかなる代替的な境界も、この発明の範囲および精神に含まれる。
この発明の前述の説明は、例示および説明のために提供されてきた。それは、網羅的であるよう、またはこの発明を開示された形そのものに限定するよう意図されてはいない。この発明の幅および範囲は、上述の例示的な実施形態のいずれによっても限定されるべきでない。多くの修正および変形が、当業者には明らかであろう。これらの修正および変形は、開示された特徴の関連するあらゆる組合せを含む。実施形態は、この発明の原理およびその実用的応用を最良に説明するために選択され説明されたものであり、それにより、考えられる特定の使用に適したさまざまな実施形態についての、およびさまざまな修正を有するこの発明を、当業者が理解できるようにする。この発明の範囲は、請求項およびそれらの均等物によって定義されるよう意図されている。

Claims (45)

  1. ネットワーク環境における効率的なパケット処理をサポートするためのシステムであって、
    1つ以上のマイクロプロセッサと、
    前記1つ以上のマイクロプロセッサ上で動くスレッドスケジューリングエンジンとを含み、前記スレッドスケジューリングエンジンは、複数のソフトウェアスレッドにおける各ソフトウェアスレッドにスレッドキーを割当てるように動作し、前記システムはさらに、
    前記ネットワーク環境においてパケットを処理するように動作する直接メモリアクセス(DMA)リソースのプールを含み、
    前記各ソフトウェアスレッドは、割当てられたスレッドキーを提示することによって、前記DMAリソースのプールにおけるあるDMAリソースへのアクセスを要求するように動作する、システム。
  2. 前記パケットは、仮想ファブリックによって生成される制御パケットである、請求項1または2に記載のシステム。
  3. 前記DMAリソースのプールは、1つ以上のDMAエンジンに関連付けられる、請求項1または2に記載のシステム。
  4. 前記DMAリソースは、待ち時間要件と、各前記DMAエンジンが維持している必要があるデータレートとのうちの少なくとも1つに依存して割当てられる、請求項3に記載のシステム。
  5. 前記スレッドスケジューリングエンジンは、オペレーティングシステム(OS)に基づいて構築されたスレッドスケジューラである、前述のいずれかの請求項に記載のシステム。
  6. ソフトウェアスレッドから要求を受信し、物理的なDMAリソースが利用可能な場合には当該DMAリソースを割当てるように動作するリソースマネージャをさらに含む、前述のいずれかの請求項に記載のシステム。
  7. 別のソフトウェアスレッドが前記DMAリソースにすでに割当てられていた場合、前記DMAリソースへのアクセスは拒否される、請求項6に記載のシステム。
  8. すべてのDMAリソースが使用されている場合、要求しているソフトウェアスレッドは待たされる、請求項6または7に記載のシステム。
  9. 単一のソフトウェアスレッドが複数のDMAリソースにアクセスすることが可能にされる、前述のいずれかの請求項に記載のシステム。
  10. 前記単一のソフトウェアスレッドは、前記複数のDMAリソース間の順序付けを決定するように動作する、請求項9に記載のシステム。
  11. ネットワーク環境における効率的なパケット処理をサポートするための方法であって、
    1つ以上のマイクロプロセッサ上で動くスレッドスケジューリングエンジンを提供するステップを含み、前記スレッドスケジューリングエンジンは、複数のソフトウェアスレッドにおける各ソフトウェアスレッドにスレッドキーを割当てるように動作し、前記方法はさらに、
    前記ネットワーク環境においてパケットを処理するように動作する直接メモリアクセス(DMA)リソースのプールを提供するステップと、
    前記各ソフトウェアスレッドが、割当てられたスレッドキーを提示することによって、前記DMAリソースのプールにおけるあるDMAリソースへのアクセスを要求することを可能にするステップとを含む、方法。
  12. 前記パケットは、仮想ファブリックによって生成される制御パケットである、請求項11に記載の方法。
  13. 前記DMAリソースのプールを1つ以上のDMAエンジンと関連付けるステップをさらに含む、請求項11または12に記載の方法。
  14. 各前記DMAエンジンが維持している必要があるデータレートに依存して、前記DMAリソースを割当てるステップをさらに含む、請求項13に記載の方法。
  15. 前記スレッドスケジューリングエンジンは、オペレーティングシステム(OS)に基づいて構築されたスレッドスケジューラである、請求項11〜14のいずれかに記載の方法。
  16. リソースマネージャを介して、ソフトウェアスレッドから要求を受信し、物理的なDMAリソースが利用可能な場合には当該DMAリソースを割当てるステップをさらに含む、請求項11〜15のいずれかに記載の方法。
  17. 別のソフトウェアスレッドが前記DMAリソースにすでに割当てられていた場合、前記DMAリソースへのアクセスを拒否するステップをさらに含む、請求項16に記載の方法。
  18. すべてのDMAリソースが使用されている場合、要求しているソフトウェアスレッドを待たせるステップをさらに含む、請求項16または17に記載の方法。
  19. 単一のソフトウェアスレッドが複数のDMAリソースにアクセスすることを可能にするステップと、
    前記複数のDMAリソース間の順序付けを決定するステップとをさらに含む、請求項11〜18のいずれかに記載の方法。
  20. コンピュータシステムによって実行されると、請求項11〜19のいずれかに記載の方法を前記コンピュータシステムに行なわせるマシン読取可能プログラム命令を含む、コンピュータプログラム。
  21. 請求項20に記載のコンピュータプログラムを格納した、非一時的なマシン読取可能記憶媒体。
  22. 実行されると、以下のステップをシステムに行なわせる命令を格納した、非一時的なマシン読取可能記憶媒体であって、前記以下のステップは、
    1つ以上のマイクロプロセッサ上で動くスレッドスケジューリングエンジンを提供するステップを含み、前記スレッドスケジューリングエンジンは、複数のソフトウェアスレッドにおける各ソフトウェアスレッドにスレッドキーを割当てるように動作し、前記以下のステップはさらに、
    ネットワーク環境においてパケットを処理するように動作する直接メモリアクセス(DMA)リソースのプールを提供するステップと、
    前記各ソフトウェアスレッドが、割当てられたスレッドキーを提示することによって、前記DMAリソースのプールにおけるあるDMAリソースへのアクセスを要求することを可能にするステップとを含む、非一時的なマシン読取可能記憶媒体。
  23. ネットワーク装置における効率的なパケット処理をサポートするためのシステムであって、
    前記ネットワーク装置上のメモリにおける複数のパケットバッファと、
    直接メモリアクセス(DMA)リソースプールとを含み、前記DMAリソースプールは1つ以上のDMAリソースを含み、前記DMAリソースプールにおける各前記DMAリソースは、前記メモリにおけるパケットバッファのチェーンを指し示し、
    各前記DMAリソースは、パケット処理スレッドが、前記パケット処理スレッドに予め割当てられたスレッドキーを使用して、前記メモリにおけるパケットバッファのチェーンにアクセスすることを可能にする、システム。
  24. 前記パケット処理スレッドは、予め割当てられた同じスレッドキーを使用して、前記メモリにおけるパケットバッファの複数のチェーンにアクセスするように動作する、請求項23に記載のシステム。
  25. 前記パケット処理スレッドは、前記パケットバッファの複数のチェーンにおけるパケットを処理するために依存リストを設定するように動作する、請求項24に記載のシステム。
  26. 複数のパケット処理スレッドが、前記メモリにおけるパケットバッファの別々のチェーンに同時にアクセスするように動作する、請求項23〜25のいずれかに記載のシステム。
  27. 少なくとも1つのDMAリソースは、パケットバッファのリンクリストを指し示す、請求項23〜26のいずれかに記載のシステム。
  28. 前記リンクリストにおける各パケットバッファは、識別子と連結している、請求項27に記載のシステム。
  29. 少なくとも1つのDMAリソースは、識別子のリニアアレイを指し示す、請求項23〜28のいずれかに記載のシステム。
  30. 前記識別子のリニアアレイにおける各識別子は、パケットバッファを指し示す、請求項29に記載のシステム。
  31. 前記複数のパケットバッファは、リンクリストとリニアアレイとの混合に基づいて構成される、請求項23〜30のいずれかに記載のシステム。
  32. 前記DMAリソースプールは、パケット処理スレッドがリンクリストに基づいてバッファのチェーンにアクセスすべきか、またはリニアアレイに基づいてバッファのチェーンにアクセスすべきかを動的に判断するように動作する、請求項31に記載のシステム。
  33. ネットワーク環境における効率的なパケット処理をサポートするための方法であって、
    ネットワーク装置上のメモリにおける複数のパケットバッファを提供するステップと、
    直接メモリアクセス(DMA)リソースプールを提供するステップとを含み、前記DMAリソースプールはDMAリソースの1つ以上を含み、前記DMAリソースプールにおける各前記DMAリソースは、前記メモリにおけるパケットバッファのチェーンを指し示し、前記方法はさらに、
    各前記DMAリソースを介して、パケット処理スレッドが、前記パケット処理スレッドに予め割当てられたスレッドキーを使用して、前記メモリにおけるパケットバッファのチェーンにアクセスすることを可能にするステップを含む、方法。
  34. 前記パケット処理スレッドが、予め割当てられた同じスレッドキーを使用して、前記メモリにおけるパケットバッファの複数のチェーンにアクセスすることを可能にするステップをさらに含む、請求項33に記載の方法。
  35. 前記パケット処理スレッドが、前記パケットバッファの複数のチェーンにおけるパケットを処理するために依存リストを設定することを可能にするステップをさらに含む、請求項34に記載の方法。
  36. 複数のパケット処理スレッドが、前記メモリにおけるパケットバッファの別々のチェーンに同時にアクセスすることを可能にするステップをさらに含む、請求項33〜35のいずれかに記載の方法。
  37. 少なくとも1つのDMAリソースは、パケットバッファのリンクリストを指し示す、請求項33〜36のいずれかに記載の方法。
  38. 前記リンクリストにおける各パケットバッファは、識別子と連結される、請求項37に記載の方法。
  39. 少なくとも1つのDMAリソースは、識別子のリニアアレイを指し示す、請求項33〜38のいずれかに記載の方法。
  40. 識別子のリニアアレイにおける各識別子は、パケットバッファを指し示す、請求項39に記載の方法。
  41. リンクリストとリニアアレイとの混合に基づいて前記複数のパケットバッファを構成し、
    パケット処理スレッドがリンクリストに基づいてバッファのチェーンにアクセスすべきか、またはリニアアレイに基づいてバッファのチェーンにアクセスすべきかを動的に判断する、請求項33〜40のいずれかに記載の方法。
  42. コンピュータシステムによって実行されると、請求項33〜41のいずれかに記載の方法を前記コンピュータシステムに行なわせるマシン読取可能プログラム命令を含む、コンピュータプログラム。
  43. 請求項42に記載のコンピュータプログラムを格納した、非一時的なマシン読取可能記憶媒体。
  44. 実行されると、以下のステップをシステムに行なわせる命令を格納した、非一時的なマシン読取可能記憶媒体であって、前記以下のステップは、
    ネットワーク装置上のメモリにおける複数のパケットバッファを提供するステップと、
    直接メモリアクセス(DMA)リソースプールを提供するステップとを含み、前記DMAリソースプールはDMAリソースの1つ以上を含み、前記DMAリソースプールにおける各前記DMAリソースは、前記メモリにおけるパケットバッファのチェーンを指し示し、前記以下のステップはさらに、
    各前記DMAリソースを介して、パケット処理スレッドが、前記パケット処理スレッドに予め割当てられたスレッドキーを使用して、前記メモリにおけるパケットバッファのチェーンにアクセスすることを可能にするステップを含む、非一時的なマシン読取可能記憶媒体。
  45. 実行されると、請求項11〜19および33〜41のいずれか1項に記載の方法をコンピュータシステムに行なわせる命令を格納した、非一時的なマシン読取可能記憶媒体。
JP2016526069A 2013-11-05 2014-10-08 ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法 Active JP6449872B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/072,566 US9489327B2 (en) 2013-11-05 2013-11-05 System and method for supporting an efficient packet processing model in a network environment
US14/072,566 2013-11-05
US14/072,597 2013-11-05
US14/072,597 US9858241B2 (en) 2013-11-05 2013-11-05 System and method for supporting optimized buffer utilization for packet processing in a networking device
PCT/US2014/059749 WO2015069408A1 (en) 2013-11-05 2014-10-08 System and method for supporting efficient packet processing model and optimized buffer utilization for packet processing in a network environment

Publications (3)

Publication Number Publication Date
JP2016535337A true JP2016535337A (ja) 2016-11-10
JP2016535337A5 JP2016535337A5 (ja) 2017-10-26
JP6449872B2 JP6449872B2 (ja) 2019-01-09

Family

ID=53007889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016526069A Active JP6449872B2 (ja) 2013-11-05 2014-10-08 ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法

Country Status (2)

Country Link
US (1) US9858241B2 (ja)
JP (1) JP6449872B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8634415B2 (en) 2011-02-16 2014-01-21 Oracle International Corporation Method and system for routing network traffic for a blade server
US9858241B2 (en) * 2013-11-05 2018-01-02 Oracle International Corporation System and method for supporting optimized buffer utilization for packet processing in a networking device
US10404582B1 (en) * 2012-12-27 2019-09-03 Sitting Man, Llc Routing methods, systems, and computer program products using an outside-scope indentifier
US10419335B1 (en) * 2012-12-27 2019-09-17 Sitting Man, Llc Region scope-specific outside-scope indentifier-equipped routing methods, systems, and computer program products
US10397101B1 (en) * 2012-12-27 2019-08-27 Sitting Man, Llc Routing methods, systems, and computer program products for mapping identifiers
US10404583B1 (en) * 2012-12-27 2019-09-03 Sitting Man, Llc Routing methods, systems, and computer program products using multiple outside-scope identifiers
US10397100B1 (en) * 2012-12-27 2019-08-27 Sitting Man, Llc Routing methods, systems, and computer program products using a region scoped outside-scope identifier
US10212076B1 (en) * 2012-12-27 2019-02-19 Sitting Man, Llc Routing methods, systems, and computer program products for mapping a node-scope specific identifier
US10904144B2 (en) 2012-12-27 2021-01-26 Sitting Man, Llc Methods, systems, and computer program products for associating a name with a network path
US10447575B1 (en) 2012-12-27 2019-10-15 Sitting Man, Llc Routing methods, systems, and computer program products
US10419334B1 (en) * 2012-12-27 2019-09-17 Sitting Man, Llc Internet protocol routing methods, systems, and computer program products
US10411998B1 (en) * 2012-12-27 2019-09-10 Sitting Man, Llc Node scope-specific outside-scope identifier-equipped routing methods, systems, and computer program products
US10411997B1 (en) * 2012-12-27 2019-09-10 Sitting Man, Llc Routing methods, systems, and computer program products for using a region scoped node identifier
US9489327B2 (en) 2013-11-05 2016-11-08 Oracle International Corporation System and method for supporting an efficient packet processing model in a network environment
US10536441B2 (en) * 2016-08-23 2020-01-14 Texas Instruments Incorporated Thread ownership of keys for hardware-accelerated cryptography
KR102275871B1 (ko) * 2018-12-19 2021-07-12 한국전자기술연구원 송수신 데이터를 효율적으로 처리하기 위한 버퍼 관리 방법 및 통신 시스템
US11379260B2 (en) * 2019-09-04 2022-07-05 Oracle International Corporation Automated semantic tagging

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103225A (ja) * 1992-09-18 1994-04-15 Fujitsu Ltd チェーン式dma方式及びそのためのdmaコントローラ
JP2002163239A (ja) * 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法
JP2002183078A (ja) * 2000-12-14 2002-06-28 Sony Corp データ転送装置及びデータ転送方法
JP2005157717A (ja) * 2003-11-26 2005-06-16 Nec Micro Systems Ltd データ転送方法及びその装置
JP2007529833A (ja) * 2004-07-15 2007-10-25 株式会社ソニー・コンピュータエンタテインメント アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術

Family Cites Families (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717952A (en) * 1994-11-16 1998-02-10 Apple Computer, Inc. DMA controller with mechanism for conditional action under control of status register, prespecified parameters, and condition field of channel command
US6058460A (en) 1996-06-28 2000-05-02 Sun Microsystems, Inc. Memory allocation in a multithreaded environment
US6070219A (en) 1996-10-09 2000-05-30 Intel Corporation Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller
US6714960B1 (en) 1996-11-20 2004-03-30 Silicon Graphics, Inc. Earnings-based time-share scheduling
DE19654846A1 (de) 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
US6041053A (en) 1997-09-18 2000-03-21 Microsfot Corporation Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards
US6131163A (en) 1998-02-17 2000-10-10 Cisco Technology, Inc. Network gateway mechanism having a protocol stack proxy
US6163539A (en) 1998-04-28 2000-12-19 Pmc-Sierra Ltd. Firmware controlled transmit datapath for high-speed packet switches
US6157955A (en) 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US6269401B1 (en) 1998-08-28 2001-07-31 3Com Corporation Integrated computer system and network performance monitoring
US6600721B2 (en) 1998-12-31 2003-07-29 Nortel Networks Limited End node pacing for QOS and bandwidth management
US6757731B1 (en) 1999-02-25 2004-06-29 Nortel Networks Limited Apparatus and method for interfacing multiple protocol stacks in a communication network
US6771595B1 (en) 1999-08-31 2004-08-03 Intel Corporation Apparatus and method for dynamic resource allocation in a network environment
WO2001025950A1 (en) 1999-10-05 2001-04-12 Ejasent Inc. Dynamic symbolic link resolution
US7046665B1 (en) 1999-10-26 2006-05-16 Extreme Networks, Inc. Provisional IP-aware virtual paths over networks
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
JP3817400B2 (ja) 2000-01-11 2006-09-06 富士通株式会社 ラベルスイッチングシステムにおける明示ルート指定方法及びパケット中継装置
US6831893B1 (en) 2000-04-03 2004-12-14 P-Cube, Ltd. Apparatus and method for wire-speed classification and pre-processing of data packets in a full duplex network
US6985937B1 (en) 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US6594775B1 (en) 2000-05-26 2003-07-15 Robert Lawrence Fair Fault handling monitor transparently using multiple technologies for fault handling in a multiple hierarchal/peer domain file server with domain centered, cross domain cooperative fault handling mechanisms
TW583547B (en) 2000-06-23 2004-04-11 Agere Syst Guardian Corp Linked-list memory-access control for a concentrator
KR20020017265A (ko) 2000-08-29 2002-03-07 구자홍 동일 아이피 서브넷상에 구성된 서로 다른 가상랜 사이의통신방법
US8677505B2 (en) * 2000-11-13 2014-03-18 Digital Doors, Inc. Security system with extraction, reconstruction and secure recovery and storage of data
US7142508B2 (en) 2000-12-22 2006-11-28 Radiance Technologies, Inc. System and method for controlling data transfer rates on a network
KR20020055287A (ko) 2000-12-28 2002-07-08 구자홍 라우터 장치의 패킷 라우팅 방법
US6944168B2 (en) 2001-05-04 2005-09-13 Slt Logic Llc System and method for providing transformation of multi-protocol packets in a data stream
US7620955B1 (en) 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
US7380271B2 (en) 2001-07-12 2008-05-27 International Business Machines Corporation Grouped access control list actions
US20030037154A1 (en) 2001-08-16 2003-02-20 Poggio Andrew A. Protocol processor
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US20060218556A1 (en) * 2001-09-28 2006-09-28 Nemirovsky Mario D Mechanism for managing resource locking in a multi-threaded environment
US6981110B1 (en) * 2001-10-23 2005-12-27 Stephen Waller Melvin Hardware enforced virtual sequentiality
US7318095B2 (en) 2001-11-21 2008-01-08 Clearcube Technology, Inc. Data fail-over for a multi-computer system
US6779084B2 (en) * 2002-01-23 2004-08-17 Intel Corporation Enqueue operations for multi-buffer packets
US7260102B2 (en) 2002-02-22 2007-08-21 Nortel Networks Limited Traffic switching using multi-dimensional packet classification
US7177311B1 (en) 2002-06-04 2007-02-13 Fortinet, Inc. System and method for routing traffic through a virtual router-based network switch
JP3789395B2 (ja) 2002-06-07 2006-06-21 富士通株式会社 パケット処理装置
US20050018601A1 (en) * 2002-06-18 2005-01-27 Suresh Kalkunte Traffic management
US7111303B2 (en) 2002-07-16 2006-09-19 International Business Machines Corporation Virtual machine operating system LAN
KR100481614B1 (ko) 2002-11-19 2005-04-08 한국전자통신연구원 서비스 거부와 분산 서비스 거부 공격으로부터 정상트래픽을 보호하는 방법 및 그 장치
US6906980B2 (en) * 2003-01-08 2005-06-14 Intel Corporation Network packet buffer allocation optimization in memory bank systems
US20040151170A1 (en) * 2003-01-31 2004-08-05 Manu Gulati Management of received data within host device using linked lists
US7835363B2 (en) 2003-02-12 2010-11-16 Broadcom Corporation Method and system to provide blade server load balancing using spare link bandwidth
US20040210623A1 (en) 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
US7114096B2 (en) 2003-04-02 2006-09-26 International Business Machines Corporation State recovery and failover of intelligent network adapters
US7350112B2 (en) 2003-06-16 2008-03-25 International Business Machines Corporation Automated diagnostic service
US7356818B2 (en) 2003-06-24 2008-04-08 International Business Machines Corporation Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor
US20050015430A1 (en) 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
JP4053967B2 (ja) 2003-11-20 2008-02-27 株式会社日立コミュニケーションテクノロジー Vlanサーバ
US20080022148A1 (en) 2003-12-11 2008-01-24 Amir Barnea Method and an Apparatus for Controlling Executables Running on Blade Servers
KR100608904B1 (ko) 2003-12-18 2006-08-04 한국전자통신연구원 서비스 품질 보장을 위한 시스템 및 방법
US7752635B2 (en) 2003-12-18 2010-07-06 Intel Corporation System and method for configuring a virtual network interface card
US8838743B2 (en) 2004-02-13 2014-09-16 Intel Corporation Apparatus and method for a dynamically extensible virtual switch
US7633955B1 (en) 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
US8156490B2 (en) 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US7480302B2 (en) 2004-05-11 2009-01-20 Samsung Electronics Co., Ltd. Packet classification method through hierarchical rulebase partitioning
US7492763B1 (en) 2004-07-16 2009-02-17 Applied Micro Circuits Corporation User-specified key creation from attributes independent of encapsulation type
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US20060045088A1 (en) 2004-08-25 2006-03-02 Nokia Inc. Method of using Patricia tree and longest prefix match for policy-based route look-up
US7515589B2 (en) 2004-08-27 2009-04-07 International Business Machines Corporation Method and apparatus for providing network virtualization
US20060045109A1 (en) * 2004-08-30 2006-03-02 International Business Machines Corporation Early interrupt notification in RDMA and in DMA operations
GB2418326B (en) 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US20060070066A1 (en) 2004-09-30 2006-03-30 Grobman Steven L Enabling platform network stack control in a virtualization platform
DE602004012563T2 (de) 2004-10-11 2009-05-07 Texas Instruments Inc., Dallas Mehrfädiges DMA
US20060092928A1 (en) 2004-10-15 2006-05-04 Dell Products L.P. System and method for providing a shareable input/output device in a PCI express environment
US7688838B1 (en) 2004-10-19 2010-03-30 Broadcom Corporation Efficient handling of work requests in a network interface device
US7450498B2 (en) 2004-10-27 2008-11-11 Morgan Stanley Fault tolerant network architecture
US7694298B2 (en) 2004-12-10 2010-04-06 Intel Corporation Method and apparatus for providing virtual server blades
CN101019405B (zh) 2005-01-28 2011-09-28 美国博通公司 用于在通信网络中缓解拒绝服务的方法和系统
US7730486B2 (en) 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems
US7865908B2 (en) 2005-03-11 2011-01-04 Microsoft Corporation VM network traffic monitoring and filtering on the host
US20060206602A1 (en) 2005-03-14 2006-09-14 International Business Machines Corporation Network switch link failover in a redundant switch configuration
US20060236063A1 (en) 2005-03-30 2006-10-19 Neteffect, Inc. RDMA enabled I/O adapter performing efficient memory management
US7200704B2 (en) 2005-04-07 2007-04-03 International Business Machines Corporation Virtualization of an I/O adapter port using enablement and activation functions
US7561531B2 (en) 2005-04-19 2009-07-14 Intel Corporation Apparatus and method having a virtual bridge to route data frames
US7478178B2 (en) 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
GB2425681A (en) 2005-04-27 2006-11-01 3Com Corporaton Access control by Dynamic Host Configuration Protocol snooping
US7848224B2 (en) 2005-07-05 2010-12-07 Cisco Technology, Inc. Method and apparatus for constructing a repair path for multicast data
US7525957B2 (en) 2005-09-01 2009-04-28 Emulex Design & Manufacturing Corporation Input/output router for storage networks
US8949364B2 (en) 2005-09-15 2015-02-03 Ca, Inc. Apparatus, method and system for rapid delivery of distributed applications
US20070083723A1 (en) 2005-09-23 2007-04-12 Dey Jayanta K Highly-available blade-based distributed computing system
US20070101323A1 (en) 2005-10-28 2007-05-03 Microsoft Corporation Automatic virtual machine adjustments to network changes
US8116312B2 (en) 2006-02-08 2012-02-14 Solarflare Communications, Inc. Method and apparatus for multicast packet reception
US8295275B2 (en) 2006-03-20 2012-10-23 Intel Corporation Tagging network I/O transactions in a virtual machine run-time environment
US8635388B2 (en) 2006-03-31 2014-01-21 Broadcom Corporation Method and system for an OS virtualization-aware network interface card
US7613749B2 (en) 2006-04-12 2009-11-03 International Business Machines Corporation System and method for application fault tolerance and recovery using topologically remotely located computing devices
US7490214B2 (en) * 2006-06-12 2009-02-10 Sun Microsystems, Inc. Relocating data from a source page to a target page by marking transaction table entries valid or invalid based on mappings to virtual pages in kernel virtual memory address space
US7853958B2 (en) 2006-06-28 2010-12-14 Intel Corporation Virtual machine monitor management from a management service processor in the host processing platform
US7643482B2 (en) 2006-06-30 2010-01-05 Sun Microsystems, Inc. System and method for virtual switching in a host
US7613132B2 (en) 2006-06-30 2009-11-03 Sun Microsystems, Inc. Method and system for controlling virtual machine bandwidth
US8005022B2 (en) 2006-07-20 2011-08-23 Oracle America, Inc. Host operating system bypass for packets destined for a virtual machine
US7788411B2 (en) 2006-07-20 2010-08-31 Oracle America, Inc. Method and system for automatically reflecting hardware resource allocation modifications
US8392565B2 (en) 2006-07-20 2013-03-05 Oracle America, Inc. Network memory pools for packet destinations and virtual machines
US7885257B2 (en) 2006-07-20 2011-02-08 Oracle America, Inc. Multiple virtual network stack instances using virtual network interface cards
US7664089B2 (en) 2007-01-12 2010-02-16 Hitachi Ltd. System and method for using an adaptive hybrid coordination function (HCF) in an 802.11E wireless LAN
WO2008093174A1 (en) 2007-02-02 2008-08-07 Groupe Des Ecoles Des Telecommuinications (Get) Institut National Des Telecommunications (Int) Autonomic network node system
US20080192648A1 (en) 2007-02-08 2008-08-14 Nuova Systems Method and system to create a virtual topology
US7796594B2 (en) 2007-02-14 2010-09-14 Marvell Semiconductor, Inc. Logical bridging system and method
US7853998B2 (en) * 2007-03-22 2010-12-14 Mocana Corporation Firewall propagation
US8305879B2 (en) 2007-03-30 2012-11-06 International Business Machines Corporation Peripheral component switch having automatic link failover
US7925795B2 (en) 2007-04-30 2011-04-12 Broadcom Corporation Method and system for configuring a plurality of network interfaces that share a physical interface
US8930522B2 (en) 2007-06-29 2015-01-06 Alcatel Lucent Replica/cache locator, an overlay network and a method to locate replication tables and caches therein
US8539098B2 (en) 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
US7979739B2 (en) 2007-11-13 2011-07-12 Hewlett-Packard Development Company, L.P. Systems and methods for managing a redundant management module
US7877524B1 (en) * 2007-11-23 2011-01-25 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
US8266337B2 (en) 2007-12-06 2012-09-11 International Business Machines Corporation Dynamic logical data channel assignment using channel bitmap
US8370530B2 (en) 2007-12-10 2013-02-05 Oracle America, Inc. Method and system for controlling network traffic in a blade chassis
US8032669B2 (en) * 2008-01-20 2011-10-04 Oracle America, Inc. Universal DMA (direct memory access) architecture
TWI348297B (en) 2008-01-25 2011-09-01 Univ Nat Taiwan Two-stage computer network packet classification method and system
WO2009112044A1 (en) 2008-03-10 2009-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Technique for classifying network traffic and for validating a mechanism for calassifying network traffic
US8082220B2 (en) * 2008-04-17 2011-12-20 Elbit Systems Ltd. Computing solutions to problems using dynamic association between abstract graphs
US8396514B2 (en) * 2008-05-23 2013-03-12 Research In Motion Limited Systems and methods for presenting an image on a display of a mobile device
US8739179B2 (en) 2008-06-30 2014-05-27 Oracle America Inc. Method and system for low-overhead data transfer
US8073990B1 (en) * 2008-09-23 2011-12-06 Teradici Corporation System and method for transferring updates from virtual frame buffers
US7970963B2 (en) 2009-06-29 2011-06-28 Oracle America, Inc. Efficient buffer management in a multi-threaded network interface
US8358651B1 (en) 2009-09-21 2013-01-22 Marvell International Ltd. Switch device having a plurality of processing cores
US8514714B2 (en) 2009-10-06 2013-08-20 Electronics And Telecommunications Research Institute Device and method for providing forwarding information and QOS information in flow based network environment
US8743877B2 (en) * 2009-12-21 2014-06-03 Steven L. Pope Header processing engine
US8478996B2 (en) * 2009-12-21 2013-07-02 International Business Machines Corporation Secure Kerberized access of encrypted file system
US8874838B2 (en) 2009-12-28 2014-10-28 Juniper Networks, Inc. Providing dynamic databases for a TCAM
US8719543B2 (en) 2009-12-29 2014-05-06 Advanced Micro Devices, Inc. Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices
CN102377574B (zh) 2010-08-20 2016-06-29 马维尔以色列(M.I.S.L.)有限公司 具有核冗余的多核网络设备以及管理网络设备的方法
US8913613B2 (en) 2011-02-16 2014-12-16 Oracle International Corporation Method and system for classification and management of inter-blade network traffic in a blade server
US9858241B2 (en) * 2013-11-05 2018-01-02 Oracle International Corporation System and method for supporting optimized buffer utilization for packet processing in a networking device
CN103635875B (zh) 2011-03-25 2018-02-16 英特尔公司 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段
US8484392B2 (en) * 2011-05-31 2013-07-09 Oracle International Corporation Method and system for infiniband host channel adaptor quality of service
US8578069B2 (en) * 2012-04-04 2013-11-05 International Business Machines Corporation Prefetching for a shared direct memory access (DMA) engine
US9342374B2 (en) 2013-06-28 2016-05-17 Dell Products, L.P. Method of scheduling threads for execution on multiple processors within an information handling system
US8848412B1 (en) 2013-07-05 2014-09-30 Arm Limited Ternary content addressable memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103225A (ja) * 1992-09-18 1994-04-15 Fujitsu Ltd チェーン式dma方式及びそのためのdmaコントローラ
JP2002163239A (ja) * 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法
JP2002183078A (ja) * 2000-12-14 2002-06-28 Sony Corp データ転送装置及びデータ転送方法
JP2005157717A (ja) * 2003-11-26 2005-06-16 Nec Micro Systems Ltd データ転送方法及びその装置
JP2007529833A (ja) * 2004-07-15 2007-10-25 株式会社ソニー・コンピュータエンタテインメント アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術

Also Published As

Publication number Publication date
US9858241B2 (en) 2018-01-02
US20150127762A1 (en) 2015-05-07
JP6449872B2 (ja) 2019-01-09

Similar Documents

Publication Publication Date Title
JP6449872B2 (ja) ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法
US10891158B2 (en) Task scheduling method and apparatus
TWI430102B (zh) 網路卡資源配置方法、儲存媒體、及電腦
JP2016535337A5 (ja)
WO2017024783A1 (zh) 一种虚拟化方法、装置和系统
CN111176829B (zh) 虚拟化处理系统中的物理功能和虚拟功能的灵活资源分配
WO2006059543A1 (ja) スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
US8826271B2 (en) Method and apparatus for a virtual system on chip
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
KR20150024845A (ko) 물리적 큐들로의 가상 머신 플로우들의 오프로딩 기법
JP2013041409A (ja) 情報処理装置、割込み制御方法および割込み制御プログラム
WO2018004953A1 (en) Technologies for scalable packet reception and transmission
CN113778612A (zh) 基于微内核机制的嵌入式虚拟化系统实现方法
WO2012052775A1 (en) Data processing systems
KR20170030578A (ko) 프록시 기반 멀티스레딩 메시지 전달 통신을 위한 기술
US9612877B1 (en) High performance computing in a virtualized environment
US11671382B2 (en) Technologies for coordinating access to data packets in a memory
JP5805783B2 (ja) コンピュータシステムインタラプト処理
EP3066568B1 (en) System and method for supporting efficient packet processing model and optimized buffer utilization for packet processing in a network environment
CN107426728B (zh) 高性能接入认证处理方法、系统、控制器设备、组网装置
CN1545041A (zh) 基于mips64的双cpu微内核
US10270715B2 (en) High performance network I/O in a virtualized environment
US11409553B1 (en) System and method for isolating work within a virtualized scheduler using tag-spaces
US9489327B2 (en) System and method for supporting an efficient packet processing model in a network environment
WO2016017161A1 (ja) 仮想計算機システム、スケジューリング方法、および、プログラム記憶媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170913

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180810

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181206

R150 Certificate of patent or registration of utility model

Ref document number: 6449872

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