JP2011198360A - パケット処理最適化 - Google Patents

パケット処理最適化 Download PDF

Info

Publication number
JP2011198360A
JP2011198360A JP2011045561A JP2011045561A JP2011198360A JP 2011198360 A JP2011198360 A JP 2011198360A JP 2011045561 A JP2011045561 A JP 2011045561A JP 2011045561 A JP2011045561 A JP 2011045561A JP 2011198360 A JP2011198360 A JP 2011198360A
Authority
JP
Japan
Prior art keywords
data packet
cache
classification information
memory
module
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
JP2011045561A
Other languages
English (en)
Other versions
JP5733701B2 (ja
Inventor
Alon Pais
パイス アロン
Noam Mizrahi
ミズラヒ ノアム
Adi Habusha
ハブシャ アディ
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.)
Marvell Israel MISL Ltd
Original Assignee
Marvell Israel MISL Ltd
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 Marvell Israel MISL Ltd filed Critical Marvell Israel MISL Ltd
Publication of JP2011198360A publication Critical patent/JP2011198360A/ja
Application granted granted Critical
Publication of JP5733701B2 publication Critical patent/JP5733701B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】データパケット処理の最適化を提供する。
【解決手段】ネットワークを介して送信されるデータパケットを受信する段階と、データパケットについて分類情報を生成する段階と、分類情報に基づきデータパケットについてメモリ格納モードを選択する段階と、選択されたメモリ格納モードを利用してデータパケットを処理する段階とを備え、パッケット処理モジュールは、プリフェッチ・モジュール、キャッシュ蓄積モジュール、及びスヌープ・モジュールにより構成される。
【選択図】図2

Description

関連出願
本願は、米国特許出願第61/315,332号(出願日:2010年3月18日)に基づく優先権を主張する。当該米国出願の明細書は、本明細書と一致しない内容の部分があればそのような部分は除き、全ての記載内容を参照により本願に組み込む。本願は、米国特許出願第13/038,258号(出願日:2011年3月1日、代理人整理番号:MP3580)および米国特許出願第13/038,266号(出願日:2011年3月1日、代理人整理番号:MP3598)に関する。両米国出願の明細書は、本明細書と一致しない内容の部分があればそのような部分は除き、全ての記載内容を参照により本願に組み込む。
本開示の実施形態は、概してデータパケットの処理に関し、具体的にはデータパケット処理の最適化に関する。
このセクションに記載する方法は、そう示されていない限り、本願で開示する請求項に対する先行技術ではなく、このセクションに記載することで先行技術であると認めるものでもない。
パケット処理システムでは、一例を挙げると、ネットワークコントローラが複数のデータパケット(例えば、ネットワークから受信した複数のデータパケット)をメモリ(例えば、システム・オン・チップ(SOC)の外部にある外部メモリ)に格納するが、当該メモリは通常、読出レイテンシが比較的(例えば、SOC内のキャッシュからの読み出す際のレイテンシと比較して)大きい。これら複数のデータパケットのうち1つのデータパケットに対してSOC内に含まれる処理コアがアクセスを試みると、当該データパケットはキャッシュに送信され、処理コアはキャッシュで当該データパケットにアクセスするとしてよい(例えば、当該データパケットを処理するためには、当該データパケットを適切なロケーションにルーティングして、当該データパケットに対応付けられているセキュリティ関連処理を実行する)。しかし、外部メモリからキャッシュへとデータパケットをローディングするので、読出レイテンシが比較的大きくなってしまうことが多い。
別の例を挙げると、ネットワークコントローラは複数のデータパケットを直接キャッシュに格納し、処理コアはキャッシュでデータパケットにアクセスする。しかし、このためには比較的大きなキャッシュが必要となり、キャッシュで上書きを頻繁に行う必要があり、および/または、キャッシュ内での混雑のためにキャッシュからメモリへと1以上のデータパケットをフラッシュする場合もある。
本開示のさまざまな実施形態によると、ネットワークを介して送信されるデータパケットを受信する段階と、データパケットについて分類情報を生成する段階と、分類情報に基づき、データパケットについてメモリ格納モードを選択する段階とを備える方法が提供される。さまざまな実施形態によると、メモリ格納モードを選択する段階はさらに、分類情報に基づきデータパケットについてプリフェッチモードを選択する段階を有し、方法はさらに、プリフェッチモードが選択されることに応じて、データパケットをメモリに格納する段階と、分類情報に少なくとも部分的に基づき、メモリからキャッシュへと、データパケットの少なくとも一部をフェッチする段階とを備える。さまざまな実施形態によると、メモリ格納モードを選択する段階はさらに、分類情報に基づきデータパケットについてキャッシュ蓄積モードを選択する段階を有し、方法はさらに、キャッシュ蓄積モードが選択されることに応じて、データパケットの一部をキャッシュに格納する段階を備える。さまざまな実施形態によると、メモリ格納モードを選択する段階はさらに、データパケットについてスヌープモードを選択する段階を有し、方法はさらに、スヌープモードが選択されることに応じて、データパケットをメモリに送信する段階と、データパケットをメモリに送信している間に、データパケットの一部についてスヌープを行う段階とを備える。
また、処理コアと、キャッシュと、解析分類モジュールと、メモリ格納モード選択モジュールとを備え、解析分類モジュールは、ネットワークを介してネットワークコントローラが受信したデータパケットをネットワークコントローラから受信して、データパケットについて分類情報を生成し、メモリ格納モード選択モジュールは、分類情報に基づき、データパケットについてメモリ格納モードを選択するシステム・オン・チップ(SOC)が提供される。
以下の詳細な説明では、本明細書の一部を成す添付図面を参照する。添付図面では、全図面にわたって同様の参照番号は同様の構成要素を示し、本開示の原理を説明するための実施形態を図示する。他の実施形態を利用し得ること、および、本開示の範囲から逸脱することなく構造または論理を変更し得ることに留意されたい。このため、以下に記載する詳細な説明は、本開示を限定するものと解釈されるのではなく、本開示に係る実施形態の範囲は請求項およびその均等物によって定義されるものである。
本開示の一実施形態に係る、解析分類モジュール18とパケット処理モジュール16とを有するシステム・オン・チップ(SOC)100を備えるパケット通信システム10(本明細書ではシステム10と呼ぶこともある)を示す概略図である。
本開示の一実施形態に係る、図1のシステム10を動作させるための方法200の一例を説明するための図である。
図1は、本開示の一実施形態に係る、解析分類モジュール18とパケット処理モジュール16とを有するシステム・オン・チップ(SOC)100を備えるパケット通信システム10(本明細書ではシステム10と呼ぶこともある)を示す概略図である。SOC100はさらに、処理コア14およびキャッシュ30を有する。キャッシュ30は、例えば、レベル2(L2)キャッシュである。図1に図示している処理コア14は1つのみであるが、一実施形態によると、SOC100は複数の処理コアを有する。SOC100は他にも複数の構成要素を有しているが(例えば、通信バス、1以上の周辺機器、インターフェース等)、これらの構成要素は図示を簡略化するべく図1には図示していない。
システム10は、メモリ26を備える。一実施形態によると、メモリ26はSOC100の外部に設けられている。一実施形態によると、メモリ26は、ダイナミック・ランダム・アクセス・メモリ(DRAM)(例えば、ダブル・データ・レート・スリー(DDR3)シンクロナス・ダイナミック・ランダム・アクセス・メモリ(SDRAM))である。
一実施形態によると、システム10は、複数のデバイス、例えば、デバイス12a、デバイス12b、および/または、デバイス12cに結合されているネットワークコントローラ12を備える。ネットワークコントローラ12、ならびに、デバイス12a、12bおよび12cはSOC100の外部に設けられているものとして図示されているが、一実施形態によると、ネットワークコントローラ12、ならびに/または、デバイス12a、12bおよび12cのうち1以上のデバイスはSOC100の内部に設けられる。ネットワークコントローラ12は、バス60を介してメモリ26に結合されている。バス60はSOC100の外部に設けられているものとして図示されているが、一実施形態によると、バス60はSOC100の内部に設けられている。一実施形態によると、図1には図示していないが、SOC100の他の複数の構成要素がバス60を共用する。
ネットワークコントローラ12は、例えば、ネットワークスイッチ、ネットワークルータ、ネットワークポート、イーサネット(登録商標)ポート(例えば、ギガバイトイーサネット(登録商標)ポート)、または、ネットワーク接続可能な任意の適切なデバイスと対応付けられている。一実施形態によると、SOC100はネットワークデバイスの一部であり、データパケットはネットワークを介して送信される。ネットワークコントローラ12は、複数のデバイス、例えば、デバイス12a、デバイス12b、および/または、デバイス12cから、(例えば、インターネット等のネットワークから受信した)データパケットを受信する。デバイス12a、12b、および/または、12cは、例えば、ネットワークスイッチ、ネットワークルータ、ネットワークポート、イーサネット(登録商標)ポート(例えば、ギガバイトイーサネット(登録商標)ポート)、ネットワーク接続可能な任意の適切なデバイス等のネットワークデバイスである。
一実施形態によると、解析分類モジュール18は、ネットワークコントローラ12からデータパケットを受信する。図1に図示しているネットワークコントローラ12は1つのみであるが、一実施形態によると、解析分類モジュール18は、複数のネットワークコントローラからデータパケットを受信する。図1には図示していないが、一実施形態によると、解析分類モジュール18は、他のデバイス、例えば、ネットワークスイッチ、ネットワークルータ、ネットワークポート、イーサネット(登録商標)ポート等からもデータパケットを受信する。
解析分類モジュール18は、ネットワークコントローラ12(および/または任意のその他の適切なソース)から受信したデータパケットを解析および/または分類する。解析分類モジュール18は、受信したデータパケットを解析および分類して、受信したデータパケットに対応する分類情報34(分類34とも呼ぶ)を生成する。例えば、解析分類モジュール18は、データパケットのカプセル化構造を概して定めている一連の所定のネットワークプロトコルおよびルールに従ってデータパケットを解析する。一例を挙げると、データパケットの分類34には、データパケットの種類、優先度、送信先アドレス、キューアドレス、トラフィックフロー情報、他の分類情報(例えば、セッション数、プロトコル等)等に対応付けられている情報が含まれている。別の例を挙げると、データパケットの分類34には、データパケットの取り扱いが同様であるフローと当該データパケットとの対応付け、または、当該データパケットのクラスがさらに含まれている。本明細書ではより詳細に後述するが、分類34はさらに、データパケットのうち、メモリ26および/またはキャッシュ30に格納されるべき部分、選択的にキャッシュ30にプリフェッチされる部分、および/または、パケット処理モジュール16によってスヌープされる部分を示す。
一実施形態に係る解析分類モジュール18は、同時係属中の米国特許出願第12/947678号(発明の名称:「反復式の解析および分類」、代理人整理番号第MP3444号)に記載されている。当該出願の明細書は、本明細書と一致しない部分があればその部分を除き、その内容を全て参照により本願に組み込むものとする。別の実施形態によると、解析分類モジュール18に代えて、任意のその他の適切なハードウェアコンポーネントおよび/またはソフトウェアコンポーネントを利用してデータパケットを解析および分類するとしてもよい。
パケット処理モジュール16は、解析分類モジュール18からデータパケットの分類34を受信する。一実施形態によると、パケット処理モジュール16は、メモリ格納モード選択モジュール20と、プリフェッチモジュール22と、キャッシュ蓄積モジュール42と、スヌープモジュール62とを持つ。一実施形態に係るプリフェッチモジュール22は、同時係属中の米国特許出願第13/038,258号(発明の名称:「データパケットのプリフェッチ」、代理人整理番号第MP3580号)に記載されている。当該出願の明細書は、本明細書と一致しない部分があればその部分を除き、その内容を全て参照により本願に組み込むものとする。
パケット処理モジュール16は、ネットワークコントローラ12が受信し解析分類モジュール18が分類する各データパケットについて、分類34に基づき複数のメモリ格納モードのうち1以上のメモリ格納モードで動作する。例えば、パケット処理モジュール16は、プリフェッチモード、キャッシュ蓄積モード、および、スヌープモードのうちいずれか1つのモードで動作する。これについては、より詳細に後述する。一実施形態によると、パケット処理モジュール16(例えば、メモリ格納モード選択モジュール20)は、あるデータパケットについて受信した分類情報34に基づき、当該データパケットに対する適切なメモリ格納モードを選択する。一実施形態によると、あるデータパケットを処理するために適切なメモリ格納モードの選択は、受信したデータパケットをキューまたはフロー(例えば、VOIP、ストリーミングビデオ、インターネットブラウズセッション等)に分類すること、データパケット自体に含まれている情報、システムリソースが利用可能か否か等に基づいて為される(例えば、同時係属中の米国特許出願第13/038,266号(発明の名称:「ハードウェア/ソフトウェア複合型の転送メカニズムおよび転送方法」、代理人整理番号第MP3595号)を参照されたい。当該出願の明細書は、その内容を全て参照により本願に組み込むものとする)。
<プリフェッチモードでの動作>
一実施形態によると、メモリ格納モード選択モジュール20がデータパケットについて当該データパケットの分類34に基づきプリフェッチモードを選択する場合、プリフェッチモジュール22が当該データパケットを処理する。例えば、プリフェッチモードでは、(ネットワークコントローラ12が受信して、解析分類モジュール18が解析および分類した)データパケットは、メモリ26に格納される。さらに、プリフェッチモジュール22は、解析分類モジュール18からは、データパケットの分類34を受信する。プリフェッチモジュール22は、受信した分類34に少なくとも部分的に基づき、データパケットの適切な部分をメモリ26からキャッシュ30へとプリフェッチする。一実施形態によると、プリフェッチモジュール22は、プリフェッチモジュール22を介して、メモリ26からキャッシュ30へとデータパケットをプリフェッチする。処理コア14は、キャッシュ30で、プリフェッチされたデータパケットにアクセスする。
一実施形態によると、処理コア14がデータパケットに対して処理動作を実行するべくデータパケットを要求する前に、プリフェッチモジュールはメモリ26からキャッシュ30へとデータパケットをプリフェッチする。一実施形態によると、データパケットの分類34には、当該データパケットをプリフェッチモジュール22がプリフェッチする必要があるか否か、または、当該データパケットには通常フェッチ動作(例えば、処理コア14が必要とする際にデータパケットをフェッチする)を実行すべきか否かを示す指標が含まれる。このように、データパケットのプリフェッチモジュール22によるプリフェッチは、分類34に基づき、近い将来に処理コア14が当該データパケットを利用するものと予測して行われる。適切なプリフェッチモジュールの動作および構造は、同時係属中の米国特許出願第13/038,258号(発明の名称:「データパケットのプリフェッチ」、代理人整理番号第MP3580号)に記載されている。
一例を挙げると、複数のデータパケットに対応付けられている分類34は、第1のデータパケットおよび第2のデータパケットが処理コア14の同じ処理キュー(または、同じ処理セッション、または、同じトラフィックフロー)に属していることを示すと共に、第1のデータパケットおよび第2のデータパケットの両方についてプリフェッチモードでの動作を選択することを示す。処理コア14が第1の処理キューに属している第1のデータパケットを処理している間、処理コア14は次に、処理コア14の処理キューまたはトラフィックフローのうち、第1のデータパケットと同じ第1の処理キューまたは第1のデータパケットと同じトラフィックフローに属する第2のデータパケットを処理する可能性が高い。したがって、処理コア14が第1のデータパケットを処理している間、プリフェッチモジュール22はメモリ26からキャッシュ30へと第2のデータパケットをプリフェッチして、必要となれば(例えば、第1のデータパケットを処理した後)処理コア14が第2のデータパケットにキャッシュ30でアクセス可能となるようにする。このように、処理コア14で第2のデータパケットの処理を行う準備が整った時には、第2のデータパケットはキャッシュ30にあり容易に利用可能である。プリフェッチモジュール22によって第2のデータパケットをプリフェッチすることによって、(処理コア14が第2のデータパケットを処理する際に、第2のデータパケットをメモリ26から読み出す場合に比べて)第2のデータパケットの処理に対応付けられているレイテンシが小さくなる。一実施形態によると、プリフェッチモジュール22は、処理コア14から、処理コア14は現在どのデータパケットを処理しているのかに関する情報、および/または、処理コア14はどのデータパケットを今後処理し得るのかに関する情報を受信する。
データパケットは通常、当該データパケットのペイロード部分の前にヘッダ部分を含む。ヘッダ部分は、例えば、データパケットの送信元アドレス、送信先アドレス、優先度、キュー、トラフィックフロー、利用領域、対応プロトコル等(例えば、任意のその他の設定情報)に対応付けられている情報を含む。ペイロード部分は、例えば、データパケットに対応付けられているユーザデータ(例えば、ネットワークを介して送信されるべきデータ、例えば、インターネットデータ、ストリーミングメディア等)を含む。
一部のアプリケーションでは、処理コア14は、データパケットの処理中に、データパケットの一部分のみにアクセスする必要がある。一実施形態によると、データパケットの分類34は、データパケットのうち処理コア14がアクセスすべき部分を示す。一実施形態によると、プリフェッチモジュール22は、1つのデータパケットを全てをプリフェッチする代わりに、受信した分類34に少なくとも部分的に基づいて、メモリ26からキャッシュ30へと、データパケットの一部分をプリフェッチする。一実施形態によると、データパケットに対応付けられている分類34は、データパケットのうち、プリフェッチモジュール22がメモリ26からキャッシュ30へとプリフェッチすべき部分を示す。つまり、解析分類モジュール18は、データパケットを分類することに基づいて、データパケットのうちプリフェッチモジュール22がメモリ26からプリフェッチすべき部分を選択する。
一例を挙げると、処理コア14は、ネットワークルーティング処理に対応付けられているデータパケットの場合、ヘッダ部分のみにアクセスして処理する必要がある。他方、処理コア14は、セキュリティ関連処理に対応付けられているデータパケットの場合、ヘッダ部分およびペイロード部分の両方にアクセスして処理する必要がある。一実施形態によると、解析分類モジュール18は、ネットワークコントローラ12が受信するデータパケットの種類を特定する。例えば、解析分類モジュール18は、危険と特定されたソースからのデータパケットを特定すると、当該データパケットをセキュリティ関連処理に対応付けられているものとして分類する。一実施形態によると、解析分類モジュール18は、データパケットの種類(例えば、データパケットがネットワークルーティング処理、セキュリティ関連処理等に対応付けられているか否か)を特定して、その結果に応じて分類34を生成する。例えば、プリフェッチモジュール22は、分類34に基づき、ネットワークルーティング処理に対応付けられているデータパケットの場合、ヘッダ部分(または、ヘッダ部分の一部)のみをプリフェッチする。他方、プリフェッチモジュール22は、セキュリティ関連処理に対応付けられている別のデータパケットの場合、ヘッダ部分およびペイロード部分の両方(または、ヘッダ部分の一部および/またはペイロード部分の一部)をプリフェッチする。
別の例を挙げると、分類34は、データパケットに対応付けられている優先度に少なくとも部分的に基づいて生成される。プリフェッチモジュール34は、分類34からデータパケットの優先度情報を受信する。プリフェッチモジュール22は、優先度が比較的高いデータパケット(例えば、ボイス・オーバー・インターネット・プロトコル(VOIP)アプリケーションのようなリアルタイムオーディオおよび/またはビデオアプリケーションに対応付けられているデータパケット)の場合、例えば、ヘッダ部分およびペイロード部分の両方をプリフェッチする(処理コア14がキャッシュ30でデータパケットのヘッダ部分にアクセスした後でペイロード部分にアクセスする必要がある場合があるためである)。しかし、プリフェッチモジュール22は、優先度が比較的低いデータパケットの場合、ヘッダ部分のみをプリフェッチする(そして、例えば、処理コア14がペイロード部分を要求するとそれに基づいてペイロード部分をフェッチする)。別の実施形態によると、プリフェッチモジュール22は、優先度が比較的低い別のデータパケットの場合、データパケットをプリフェッチせず、処理コア14が実際にデータパケットを必要とした場合に限りメモリ26からキャッシュ30にデータパケットをフェッチする。
さらに別の例によると、プリフェッチモジュール22は、任意の別の適切な基準に少なくとも部分的に基づき、データパケットの一部分をプリフェッチする。例えば、プリフェッチモジュール22は、分類34に含まれる任意のその他の設定情報に少なくとも部分的に基づいて、データパケットの一部分をプリフェッチする。
<キャッシュ蓄積モードでの動作>
一実施形態によると、メモリ格納モード選択モジュール20があるデータパケットに対して当該データパケットの分類34に基づきキャッシュ蓄積モードを選択する場合、キャッシュ蓄積モジュール42が当該データパケットを処理する。例えば、キャッシュ蓄積モードでは、キャッシュ蓄積モジュール42は、分類34を受信して、メモリ26および/またはキャッシュ30にデータパケットを格納するようにネットワークコントローラ12に選択的に命令する。一実施形態によると、キャッシュ蓄積モードでは、ネットワークコントローラ12は、キャッシュ蓄積モジュール42からの命令に少なくとも部分的に基づき、データパケットの一部分をキャッシュ30に格納して、データパケットの別の一部分(または、データパケット全体)をメモリ26に格納する。例えば、データパケットのうち、処理コア14がデータパケットを処理中にアクセスする部分のみをキャッシュ30に格納する。
一実施形態によると、分類34は、あるデータパケットに対応付けられており、当該データパケットのうちネットワークコントローラ12が直接(例えば、メモリ26を通さず)キャッシュ30に格納する部分を示す。つまり、解析分類モジュール18は、データパケットを分類することに基づいて、データパケットのうち、ネットワークコントローラ12が直接キャッシュ30に格納する一部分を選択する(ただし、別の実施形態では、(図1には図示していない)別の構成要素が分類34を受信して、データパケットのうちどの部分をキャッシュ30に格納すべきかを決定する)。
例えば、データパケットは複数のバイトから構成されており、ネットワークコントローラは、データパケットのうちNバイト(例えば、データパケットのうち最初のNバイト)をキャッシュ30に格納し、データパケットの残りのバイトをメモリ26に格納する。尚、Nは、例えば、解析分類モジュール18が選択する整数(例えば、分類34が整数Nを示す指標を含む)および/またはキャッシュ蓄積モジュール42が(例えば、分類34に基づき)選択する整数である。
別の例を挙げると、ネットワークコントローラは、データパケットのうちNバイトをキャッシュ30に格納し、データパケット全体をメモリ26にさらに格納する(このようにして、データパケットのうちNバイトはキャッシュ30およびメモリ26の両方に格納されることとなる)。
上述したように、データパケットのうち、処理コア14がデータパケットを処理中にアクセスする必要がある部分のみが、ネットワークコントローラ12aによってキャッシュ30に格納される。一実施形態によると、データパケットは第1の部分および第2の部分から構成されており、ネットワークコントローラ12は、分類34に基づき、データパケットのうち第1の部分をキャッシュ30aに直接送信する(キャッシュ蓄積モードの一環として)が、データパケットのうち第2の部分はキャッシュ30aへの送信を抑制する(データパケットの第2の部分は、第1の部分もそうなる可能性があるが、ネットワークコントローラ12によってメモリ26に送信される)。
一例を挙げると、前述したように、ネットワークルーティング処理に対応付けられているデータパケットの場合、処理コア14がアクセスおよび処理する必要があるのは、ヘッダ部分のみである。このようなデータパケットに対応する分類34は、解析分類モジュール18によって、そのような内容となるように生成されている。一実施形態によると(例えば、分類34がさらにキャッシュ蓄積モードでの処理を指し示している場合)、ネットワークコントローラ12は、分類34に基づき、(例えば、このようなデータパケットのうちヘッダ部分をメモリ26に格納することに加えて、または、メモリ26へ格納するのではなく)このようなデータパケットのうちヘッダ部分のみ(または、ヘッダ部分全体ではなく、ヘッダ部分のうち関連箇所のみ)をキャッシュ30に格納する。
別の例を挙げると、セキュリティ関連処理に対応付けられているデータパケットの場合、処理コア14がアクセスおよび処理する必要があるのは、ヘッダ部分およびペイロード部分の両方である。このようなデータパケットに対応する分類34は、解析分類モジュール18によって、そのような内容となるように生成されている。一実施形態によると(例えば、分類34がさらにキャッシュ蓄積モードでの処理を指し示している場合)、ネットワークコントローラ12は、分類34に基づき、(例えば、このようなデータパケットのうちヘッダ部分およびペイロード部分をメモリ26に格納することに加えて、または、メモリ26へ格納するのではなく)このようなデータパケットのうちヘッダ部分およびペイロード部分(または、ヘッダ部分およびペイロード部分のうち関連箇所のみ)をキャッシュ30に格納する。
一実施形態によると、分類34は、データパケットに対応付けられている優先度に少なくとも部分的に基づいて生成される。例えば、キャッシュ蓄積モジュール42は、分類34からデータパケットの優先度情報を受信する。優先度が比較的高いデータパケットの場合、ネットワークコントローラ12は、分類34に基づき、ヘッダ部分およびペイロード部分の両方をキャッシュ30に格納する(これは、処理コア14は、キャッシュ30でデータパケットのヘッダ部分にアクセスした後ペイロード部分にアクセスする必要がある場合があるためである)。しかし、優先度が比較的低いデータパケットの場合(例えば、分類34で優先度が比較的低いフロー/キューに属していると分類されるパケットの場合)、例えば、ネットワークコントローラ12は分類34に基づきヘッダ部分のみをキャッシュ30に格納する。別の実施形態では、優先度が比較的低い他のデータパケットについては、ネットワークコントローラ12はデータパケットのいずれの部分についてもキャッシュ30に格納することなく、別の適切なメモリ格納モードを選択する(例えば、プリフェッチモードを選択する)。さらに別の例を挙げると、ネットワークコントローラ12は、任意のその他の適切な基準、例えば、分類34に含まれる任意のその他の設定情報に少なくとも部分的に基づき、データパケットの一部分をキャッシュ30に格納する。
<スヌープモード>
一実施形態によると、メモリ格納モード選択モジュール20があるデータパケットについて当該データパケットの分類34に基づきスヌープモードを選択すると、スヌープモジュール62が当該データパケットを処理する。一実施形態によると、スヌープモードでは、分類34に少なくとも部分的に基づいて、データパケットがネットワークコントローラ12からバス60を介してメモリ26へと送信される間、スヌープモジュール62が当該データパケットをスヌープする。一例を挙げると、分類34に基づき、データパケットのうち処理コア14が当該データパケットを処理中にアクセスする必要がある部分のみが、スヌープモジュール62によるスヌープの対象となる。例えば、分類34は、データパケットのうちスヌープモジュール62によるスヌープの対象となるべき部分を示す指標を含んでいる。
一実施形態によると、スヌープモードは、プリフェッチモードおよび/またはキャッシュ蓄積モードとは別に独自に実行される。一実施形態によると、スヌープモジュール62は、対応する分類34に基づき、ネットワークコントローラ12からメモリ26へと送信されるデータパケット全てについて、一部分をスヌープする。
従来のパケット通信システム(例えば、ハードウェアキャッシュコヒーレンシをサポートするもの)では、メモリに送信されるデータパケット全てが、キャッシュコヒーレンシを守るべくスヌープまたはスニッフィングされる。一般的に、このようなスヌープ動作(例えば、キャッシュ内にデータの有効なコピーがあるか否か確認し、新しいデータがメモリ内の対応する部分に書き込まれる場合にはキャッシュ内のデータの有効なコピーを無効化する動作)を実行すると、(例えば、メモリに対する書込みトランザクション全てについてスヌープが実行されるので)パケット通信システムでの負荷が過剰になってしまう可能性がある。これとは対照的に、スヌープモジュール62は、(例えば、データパケット全体ではなく)データパケットのうち処理コア14がアクセスする必要がある部分のみを選択的にスヌープするので、システム10においてスヌープに対応付けられる処理負荷が小さくなる。
一実施形態によると、スヌープモードと他のメモリ格納モードとを組み合わせる。例えば、分類34に基づき、キャッシュ蓄積モードでは、データパケットのうち第1の部分をメモリ26に書込みつつ、データパケットのうち第2の部分を直接キャッシュ30に書き込む。一実施形態によると、データパケットのうち第1の部分をメモリ26に書き込んでいる間、スヌープモジュール62がデータパケットの第1の部分をスヌープすることができる。このように、本例では、スヌープモードとキャッシュ蓄積モードとを組み合わせて実行する。一実施形態によれば、前述したように、解析分類モジュール18は、あるデータパケットについて分類34を生成する場合、パケット処理モジュール16がデータパケットを処理する際にどのモードで動作すべきかを示すように分類34を構成する。
一実施形態によると、データパケットは複数のバイトから構成されており、スヌープモジュール62は、(例えば、データパケット全体をスヌープするのではなく)データパケットのうちMバイト(例えば、データパケットのうち最初のMバイト)のみをスヌープする。尚、Mは例えば、当該データパケットに対応付けられている分類34で示される整数である。一実施形態によると、スヌープモジュール62は、データパケットの残りのバイト(例えば、Mバイト以外のバイト)に対してはスヌープを行わない。
一実施形態によると、分類34は、データパケットのうちスヌープされるべき部分を指し示しており、例えば、データパケットの種類に基づき生成される。例えば、ネットワークルーティング処理に対応付けられているデータパケットの場合、処理コア14がアクセスおよび処理する必要があるのはヘッダ部分のみである。したがって、一実施形態によると、分類34は、スヌープモジュール62が分類34を参照すると、例えば、このようなデータパケットのうちヘッダ部分のみ(または、ヘッダ部分の関連箇所のみ)をスヌープするように生成される。別の例を挙げると、セキュリティ関連処理に対応付けられているデータパケットの場合、処理コア14がアクセスおよび処理するのは、ヘッダ部分およびペイロード部分の両方である。したがって、一実施形態によると、分類34は、スヌープモジュール62がセキュリティ処理に対応付けられているデータパケットのうちヘッダ部分およびペイロード部分(または、ヘッダ部分および/またはペイロード部分の関連箇所のみ)をスヌープするように生成される。
さらに別の例によると、選択されたキューまたはフローに対応するデータパケットの分類34に基づき、スヌープモジュール62は、任意のその他の適切な基準、例えば、分類34に含まれる任意のその他の設定情報に少なくとも部分的に基づき、データパケットの一部分に対してスヌープを実行する。
<図1に示すシステム10の動作>
前述したように、パケット処理モジュール16(例えば、メモリ格納モード選択モジュール20)は、あるデータパケットに対応して受信した分類情報34に基づき、当該データパケットについて適切なメモリ格納モード(例えば、プリフェッチモード、キャッシュ蓄積モード、および、スヌープモードのうち1以上のモード)を選択する。例えば、優先度が比較的高いデータパケット(例えば、高優先度データパケット全体、または、高優先度データパケットのうち関連部分のみ)は、ネットワークコントローラ12によってキャッシュ30に直接書き込むことができる。つまり、高優先度データパケットの場合、分類34は、メモリ格納モード選択モジュール20がキャッシュ蓄積モードを選択するように生成され得る。別の例では、高優先度データパケットの全体をスヌープモジュール62でスヌープすることができる。他方、優先度が中程度のデータパケット(例えば、優先度が高優先度データパケットよりも低いが低優先度データパケットよりは高いデータパケット)は、メモリ26に書き込まれて、処理コア14によってアクセスおよび処理される前に、プリフェッチモジュール220によってプリフェッチされ得る。つまり、中優先度データパケットの場合、分類34は、メモリ格納モード選択モジュール20がプリフェッチモードを選択するように生成され得る。低優先度データパケットは、メモリ26に格納して、処理コア14が処理する場合にのみキャッシュ30にフェッチされ得る。また、別の例を挙げると、対応付けられている分類34に基づき、中優先度データパケットおよび/または低優先度データパケットの一部分のみをスヌープモジュ−ル62でスヌープすることもできる。
上述したように(例えば、データパケットの優先度に基づいて生成される)分類34に基づきプリフェッチモード、キャッシュ蓄積モード、および/または、スヌープモードで動作するのは、一例に過ぎない。別の実施形態によると、分類34は任意の別の手法で生成することもできる。
前述したように、一実施形態によると、さまざまなメモリ格納モードにおいて、例えば、データパケット全体を処理するのではなく、データパケットのうち一部のみを処理する(例えば、データパケットのうち一部のみを、プリフェッチする、キャッシュ30に蓄積する、および/または、スヌープする)。例えば、データパケットのうち、処理コア14が当該データパケットを処理する際にアクセスする必要がある一部分のみを、(例えば、プリフェッチモードまたはキャッシュ蓄積モードでは)キャッシュ30内に入れる。このため、データパケットの一部は、処理コア14が当該データパケットに対するアクセスおよび/または処理を所望する場合には常に、キャッシュ30内にあって処理コア14が容易に利用可能であるので、当該データパケットの処理に対応付けられているレイテンシが小さくなる。また、(例えば、データパケット全体ではなく)データパケットの一部のみがキャッシュに格納されるので、キャッシュのデータ負荷が過剰になることはない(例えば、キャッシュに対する上書きを頻繁に行う必要はない)。また、キャッシュが小型化され、および/または、キャッシュからデータパケットをフラッシュする回数が少なくなる。
一実施形態によると、解析分類モジュール18、プリフェッチモジュール22、キャッシュ蓄積モジュール42、および/または、スヌープモジュール62は、一から設定可能である。例えば、解析分類モジュール18は、利用領域、対応付けられているSOCの臨界、データパケットの種類、利用可能な帯域幅等に少なくとも部分的に基づき、データパケットのうち一部(例えば、プリフェッチモードまたはキャッシュ蓄積モードにおいてキャッシュに格納されるべき部分、または、スヌープされるべき部分)の選択を動的に変更するように設定され得る。別の例を挙げると、プリフェッチモジュール22、キャッシュ蓄積モジュール42、および、スヌープモジュール62は、(例えば、プリフェッチモードまたはキャッシュ蓄積モードにおいて)例えば、キャッシュにデータパケットの一部を入れるタイミングを動的に変更するように、および/または、図1のシステム10の動作に対応付けられている任意のその他の適切な基準を動的に変更するように設定され得る。
図2は、本開示の一実施形態に係る、図1のシステム10を動作させる方法200の一例を示す図である。204において、ネットワークコントローラ12(または、システム10のコンポーネントのうち任意のその他の適切なコンポーネント)は、ネットワークを介して送信されるデータパケットを受信する。208において、解析分類モジュール18は、データパケットについて分類34を生成する。一実施形態によると、分類34は、データパケットに対するメモリ格納モードを示す指標を含む。一実施形態によると、分類34は、データパケットのうち、例えば、(例えば、プリフェッチモードまたはキャッシュ蓄積モードにおいて)キャッシュ30に格納されるべき部分、および/または、スヌープモジュール62によってスヌープされるべき部分を示す指標を含む。
212において、メモリ格納モード選択モジュール20は、分類34に基づきメモリ格納モードを選択する。216において、パケット処理モジュール16は、選択されたメモリ格納モードを利用してデータパケットを処理する。例えば、プリフェッチモードが選択された場合、データパケットはメモリ26に格納され、プリフェッチモジュール22は、分類34に少なくとも部分的に基づき、メモリ26からキャッシュ30へとデータパケットの一部をプリフェッチする。別の例を挙げると、キャッシュ蓄積モードが選択された場合、分類34に少なくとも部分的に基づき、データパケットの一部はネットワークコントローラ12から直接キャッシュ30へと格納される。さらに別の例を挙げると、スヌープモードが選択された場合、スヌープモジュール62は、分類34に少なくとも部分的に基づき、バス60を介してメモリ26へとデータパケットが書き込まれている間、データパケットの一部をスヌープする。一実施形態によると、スヌープモードは、プリフェッチモードおよび/またはキャッシュ蓄積モードとは別に独立して実行される(例えば、スヌープモードは、メモリ26に書き込まれるデータパケット全てについて、例えば、プリフェッチモードおよび/またはキャッシュ蓄積モードのいずれが選択されようと、実行される)。
本明細書では具体的な実施形態を図示および記載したが、本開示の範囲から逸脱することなく、図示および記載した具体的な実施形態に代えて多岐にわたる変形例および/または均等例を実施し得るものと留意されたい。本開示は、特許請求の範囲で記載した請求項を文字通り解釈した場合または均等物の原則の下で解釈され得る範囲内に実質的に含まれる方法、装置、および、製造物品を全て含むものである。本願は、本明細書に開示した実施形態を任意の点で適応または変更したものを含むものとする。このため、本開示は請求項およびその均等物によってのみ限定されることを明確に意図している。

Claims (20)

  1. ネットワークを介して送信されるデータパケットを受信する段階と、
    前記データパケットに含まれる情報に基づき、前記データパケットについて分類情報を生成する段階と、
    前記分類情報に基づき、前記データパケットについてメモリ格納モードを選択する段階と
    を備える方法。
  2. 前記メモリ格納モードを選択する段階はさらに、前記分類情報に基づき前記データパケットについてプリフェッチモードを選択する段階を有し、
    前記方法はさらに、
    前記プリフェッチモードが選択されることに応じて、前記データパケットをメモリに格納する段階と、
    前記分類情報に少なくとも部分的に基づき、前記メモリからキャッシュへと、前記データパケットの少なくとも一部をフェッチする段階と
    を備える請求項1に記載の方法。
  3. 前記データパケットは第1のデータパケットであり、前記第1のデータパケットは第1のトラフィックフローと対応付けられており、
    前記第1のデータパケットの前記少なくとも一部をフェッチする段階はさらに、前記第1のトラフィックフローに対応付けられている第2のデータパケットを処理している間に、前記第1のデータパケットおよび前記第2のデータパケットが同じトラフィックフローに対応付けられていることに少なくとも部分的に基づき、前記メモリから前記キャッシュへと、前記第1のデータパケットの前記少なくとも一部をフェッチする段階を有する請求項2に記載の方法。
  4. 前記データパケットの前記少なくとも一部をフェッチする段階はさらに、処理コアが、前記データパケットの前記少なくとも一部に対して処理動作を実行するべく前記データパケットの前記少なくとも一部を要求する前に、前記データパケットの前記少なくとも一部を前記キャッシュにフェッチする段階を有する請求項2に記載の方法。
  5. 前記分類情報を生成する段階はさらに、前記メモリから前記キャッシュへフェッチされる前記データパケットの前記少なくとも一部を示す指標を前記分類情報が含むように、前記データパケットについて前記分類情報を生成する段階を有する請求項2に記載の方法。
  6. 前記メモリ格納モードを選択する段階はさらに、前記分類情報に基づき前記データパケットについてキャッシュ蓄積モードを選択する段階を有し、
    前記方法はさらに、前記キャッシュ蓄積モードが選択されることに応じて、前記データパケットの一部をキャッシュに格納する段階を備える請求項1に記載の方法。
  7. 前記データパケットの前記一部を前記キャッシュに格納する段階はさらに、前記データパケットの前記一部をネットワークコントローラから前記キャッシュへと送信する段階を有する請求項6に記載の方法。
  8. 前記データパケットの前記一部は、前記データパケットの第1の部分を含み、前記データパケットは、前記第1の部分および第2の部分を含み、
    前記方法はさらに、
    前記データパケットの前記第2の部分を前記ネットワークコントローラからメモリへと送信する段階と、
    前記データパケットの前記第2の部分の前記ネットワークコントローラから前記キャッシュへの送信を抑制する段階と
    を備える請求項7に記載の方法。
  9. 前記メモリ格納モードを選択する段階はさらに、前記データパケットについてスヌープモードを選択する段階を有し、
    前記方法はさらに、
    前記スヌープモードが選択されることに応じて、前記データパケットをメモリに送信する段階と、
    前記データパケットを前記メモリに送信している間に、前記データパケットの一部についてスヌープを行う段階と
    を備える請求項1に記載の方法。
  10. 前記分類情報を生成する段階はさらに、スヌープの対象となる前記データパケットの前記一部を示す指標を前記分類情報が含むように、前記データパケットについて前記分類情報を生成する段階を有する請求項9に記載の方法。
  11. 前記データパケットについて前記分類情報を生成する段階はさらに、
    前記データパケットの優先度を決定する段階と、
    前記データパケットの優先度が比較的高い優先度である場合には、前記分類情報が前記データパケットについてキャッシュ蓄積モードを示すように前記分類情報を生成する段階と
    を有する請求項1に記載の方法。
  12. 前記データパケットについて前記分類情報を生成する段階はさらに、前記データパケットの優先度が比較的高い優先度である場合には、前記データパケット全体をネットワークコントローラからキャッシュへと直接格納すべきである旨を前記分類情報が示すように前記分類情報を生成する段階を有する請求項11に記載の方法。
  13. 前記データパケットについて前記分類情報を生成する段階はさらに、
    前記データパケットの優先度を決定する段階と、
    前記データパケットの優先度が比較的低い優先度である場合には、プリフェッチ無しで前記データパケットをメモリに格納する格納モードを前記分類情報が示すように前記分類情報を生成する段階と、
    前記データパケットの優先度が前記比較的高い優先度よりも低く、前記比較的低い優先度よりも高い場合には、前記データパケットについてプリフェッチモードを前記分類情報が示すように前記分類情報を生成する段階と
    を有する請求項1に記載の方法。
  14. 処理コアと、
    キャッシュと、
    解析分類モジュールと、
    メモリ格納モード選択モジュールと
    を備え、
    前記解析分類モジュールは、
    ネットワークを介してネットワークコントローラが受信したデータパケットを前記ネットワークコントローラから受信して、
    前記データパケットについて分類情報を生成し、
    前記メモリ格納モード選択モジュールは、前記分類情報に基づき、前記データパケットについてメモリ格納モードを選択する
    システム・オン・チップ(SOC)。
  15. 前記メモリ格納モード選択モジュールがプリフェッチモードを選択することに応じて、前記データパケットをメモリに格納し、前記分類情報に少なくとも部分的に基づき、前記メモリから前記キャッシュへと前記データパケットの一部をプリフェッチするプリフェッチモジュールをさらに備える請求項14に記載のSOC。
  16. 前記データパケットは、第1のトラフィックフローに対応付けられている第1のデータパケットであり、
    前記プリフェッチモジュールは、前記処理コアが前記第1のトラフィックフローに対応付けられている第2のデータパケットを処理している間に、前記第1のデータパケットおよび前記第2のデータパケットが同じトラフィックフローに対応付けられていることに少なくとも部分的に基づき、前記第1のデータパケットの前記一部をプリフェッチする請求項15に記載のSOC。
  17. 前記メモリは、前記SOCの外部に設けられている請求項15に記載のSOC。
  18. 前記分類情報に少なくとも部分的に基づき、前記メモリ格納モード選択モジュールがキャッシュ蓄積モードを選択することに応じて、前記ネットワークコントローラが前記データパケットの一部を前記キャッシュに送信するように前記ネットワークコントローラを制御するキャッシュ蓄積モジュールをさらに備える請求項14に記載のSOC。
  19. 前記分類情報に基づき、前記データパケットが前記ネットワークコントローラから前記メモリに送信されている間に、前記データパケットの一部に対してスヌープを行うスヌープモジュールをさらに備える請求項14に記載のSOC。
  20. 前記分類情報は、前記スヌープモジュールによってスヌープされるべき前記データパケットを示す指標を含む請求項19に記載のSOC。
JP2011045561A 2010-03-18 2011-03-02 パケット処理最適化 Expired - Fee Related JP5733701B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31533210P 2010-03-18 2010-03-18
US61/315,332 2010-03-18

Publications (2)

Publication Number Publication Date
JP2011198360A true JP2011198360A (ja) 2011-10-06
JP5733701B2 JP5733701B2 (ja) 2015-06-10

Family

ID=44603285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011045561A Expired - Fee Related JP5733701B2 (ja) 2010-03-18 2011-03-02 パケット処理最適化

Country Status (3)

Country Link
US (1) US20110228674A1 (ja)
JP (1) JP5733701B2 (ja)
IL (1) IL211608B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016123077A (ja) * 2014-12-23 2016-07-07 インテル コーポレイション ネットワークパケットのキャッシュ管理のための技術

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793032B2 (en) * 2007-07-11 2010-09-07 Commex Technologies, Ltd. Systems and methods for efficient handling of data traffic and processing within a processing device
US9444737B2 (en) * 2009-04-27 2016-09-13 Intel Corporation Packet data processor in a communications processor architecture
US8630181B2 (en) * 2011-05-04 2014-01-14 Stmicroelectronics (Grenoble 2) Sas Communication system and corresponding integrated circuit and method
EP2538334B1 (en) * 2011-06-21 2019-08-21 Lantiq Beteiligungs-GmbH & Co.KG Cache streaming system
US20120331227A1 (en) * 2011-06-21 2012-12-27 Ramakrishna Saripalli Facilitating implementation, at least in part, of at least one cache management policy
US9092341B2 (en) * 2012-07-10 2015-07-28 International Business Machines Corporation Methods of cache preloading on a partition or a context switch
US9298637B2 (en) * 2013-03-13 2016-03-29 International Business Machines Corporation Dynamic caching module selection for optimized data deduplication
US9384135B2 (en) 2013-08-05 2016-07-05 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method of caching hinted data
US9811467B2 (en) * 2014-02-03 2017-11-07 Cavium, Inc. Method and an apparatus for pre-fetching and processing work for procesor cores in a network processor
US9892083B1 (en) * 2014-03-07 2018-02-13 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for controlling a rate of transmitting data units to a processing core
US9769290B2 (en) * 2014-05-23 2017-09-19 Intel Corporation Packet flow classification
US11159440B2 (en) * 2017-11-22 2021-10-26 Marvell Israel (M.I.S.L) Ltd. Hybrid packet memory for buffering packets in network devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278834A (ja) * 2001-03-21 2002-09-27 Nec Corp キャッシュメモリ装置およびそれを含むデータ処理装置
JP2005018772A (ja) * 2003-06-25 2005-01-20 Internatl Business Mach Corp <Ibm> 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム
JP2006513510A (ja) * 2003-01-27 2006-04-20 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 書き込みデータをキャッシュにインジェクトする方法及び装置

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4574351A (en) * 1983-03-03 1986-03-04 International Business Machines Corporation Apparatus for compressing and buffering data
US4612612A (en) * 1983-08-30 1986-09-16 Amdahl Corporation Virtually addressed cache
US4682281A (en) * 1983-08-30 1987-07-21 Amdahl Corporation Data storage unit employing translation lookaside buffer pointer
US5315707A (en) * 1992-01-10 1994-05-24 Digital Equipment Corporation Multiprocessor buffer system
US5657471A (en) * 1992-04-16 1997-08-12 Digital Equipment Corporation Dual addressing arrangement for a communications interface architecture
US5860149A (en) * 1995-06-07 1999-01-12 Emulex Corporation Memory buffer system using a single pointer to reference multiple associated data
JPH0934786A (ja) * 1995-07-14 1997-02-07 Fujitsu Ltd 命令供給装置
US6112265A (en) * 1997-04-07 2000-08-29 Intel Corportion System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
US5943731A (en) * 1998-02-10 1999-08-31 Rexair, Inc. Accessory holder for vacuum cleaner
US6009463A (en) * 1998-04-15 1999-12-28 Unisys Corporation Cooperative service interface with buffer and lock pool sharing, for enhancing message-dialog transfer between network provider and distributed system services
US6647423B2 (en) * 1998-06-16 2003-11-11 Intel Corporation Direct message transfer between distributed processes
US6282589B1 (en) * 1998-07-30 2001-08-28 Micron Technology, Inc. System for sharing data buffers from a buffer pool
US6343351B1 (en) * 1998-09-03 2002-01-29 International Business Machines Corporation Method and system for the dynamic scheduling of requests to access a storage system
US6434649B1 (en) * 1998-10-14 2002-08-13 Hitachi, Ltd. Data streamer
US6487640B1 (en) * 1999-01-19 2002-11-26 International Business Machines Corporation Memory access request reordering to reduce memory access latency
US6963924B1 (en) * 1999-02-01 2005-11-08 Nen-Fu Huang IP routing lookup scheme and system for multi-gigabit switching routers
US7600131B1 (en) * 1999-07-08 2009-10-06 Broadcom Corporation Distributed processing in a cryptography acceleration chip
US6378052B1 (en) * 1999-08-11 2002-04-23 International Business Machines Corporation Data processing system and method for efficiently servicing pending requests to access a storage system
US6510582B1 (en) * 2000-05-22 2003-01-28 Lg Electronics Inc. Vacuum cleaner tool caddy for storing accessory tools
US6654860B1 (en) * 2000-07-27 2003-11-25 Advanced Micro Devices, Inc. Method and apparatus for removing speculative memory accesses from a memory access queue for issuance to memory or discarding
WO2002076042A1 (en) * 2001-03-19 2002-09-26 International Business Machines Corporation Cache entry selection method and apparatus
US7093094B2 (en) * 2001-08-09 2006-08-15 Mobilygen Corporation Random access memory controller with out of order execution
US6918005B1 (en) * 2001-10-18 2005-07-12 Network Equipment Technologies, Inc. Method and apparatus for caching free memory cell pointers
US7394823B2 (en) * 2001-11-20 2008-07-01 Broadcom Corporation System having configurable interfaces for flexible system configurations
TW580619B (en) * 2002-04-03 2004-03-21 Via Tech Inc Buffer control device and the management method
CA2393373A1 (en) * 2002-07-15 2004-01-15 Anthony Gerkis Apparatus, system and method for the transmission of data with different qos attributes.
US7430623B2 (en) * 2003-02-08 2008-09-30 Hewlett-Packard Development Company, L.P. System and method for buffering data received from a network
US20040184470A1 (en) * 2003-03-18 2004-09-23 Airspan Networks Inc. System and method for data routing
US20050100042A1 (en) * 2003-11-12 2005-05-12 Illikkal Rameshkumar G. Method and system to pre-fetch a protocol control block for network packet processing
US7664938B1 (en) * 2004-01-07 2010-02-16 Xambala Corporation Semantic processor systems and methods
US7424562B2 (en) * 2004-03-01 2008-09-09 Cisco Technology, Inc. Intelligent PCI bridging consisting of prefetching data based upon descriptor data
US20050198464A1 (en) * 2004-03-04 2005-09-08 Savaje Technologies, Inc. Lazy stack memory allocation in systems with virtual memory
US7486688B2 (en) * 2004-03-29 2009-02-03 Conexant Systems, Inc. Compact packet switching node storage architecture employing Double Data Rate Synchronous Dynamic RAM
US7783769B2 (en) * 2004-03-31 2010-08-24 Intel Corporation Accelerated TCP (Transport Control Protocol) stack processing
US7493465B2 (en) * 2004-05-17 2009-02-17 Oracle International Corporation Method and system for extended memory with user mode input/output operations
US7573895B2 (en) * 2004-06-24 2009-08-11 Intel Corporation Software assisted RDMA
US20060004941A1 (en) * 2004-06-30 2006-01-05 Shah Hemal V Method, system, and program for accessesing a virtualized data structure table in cache
US7277982B2 (en) * 2004-07-27 2007-10-02 International Business Machines Corporation DRAM access command queuing structure
US7602798B2 (en) * 2004-08-27 2009-10-13 Intel Corporation Techniques to reduce latency in receive side processing
US7234039B1 (en) * 2004-11-15 2007-06-19 American Megatrends, Inc. Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer
US7426649B2 (en) * 2005-02-09 2008-09-16 International Business Machines Corporation Power management via DIMM read operation limiter
US20060236063A1 (en) * 2005-03-30 2006-10-19 Neteffect, Inc. RDMA enabled I/O adapter performing efficient memory management
US7889734B1 (en) * 2005-04-05 2011-02-15 Oracle America, Inc. Method and apparatus for arbitrarily mapping functions to preassigned processing entities in a network system
US20070081538A1 (en) * 2005-10-12 2007-04-12 Alliance Semiconductor Off-load engine to re-sequence data packets within host memory
KR100738339B1 (ko) * 2005-12-01 2007-07-12 한국전자통신연구원 인터넷 프로토콜 오프로드의 패킷 전송 장치 및 방법
US7457892B2 (en) * 2006-06-05 2008-11-25 Freescale Semiconductor, Inc. Data communication flow control device and methods thereof
US7664905B2 (en) * 2006-11-03 2010-02-16 Nvidia Corporation Page stream sorter for poor locality access patterns
US8179896B2 (en) * 2006-11-09 2012-05-15 Justin Mark Sobaje Network processors and pipeline optimization methods
US7818389B1 (en) * 2006-12-01 2010-10-19 Marvell International Ltd. Packet buffer apparatus and method
IL220238A (en) * 2007-03-12 2014-03-31 Marvell Israel Misl Ltd A method and system for determining the location of fields in information units
US7813342B2 (en) * 2007-03-26 2010-10-12 Gadelrab Serag Method and apparatus for writing network packets into computer memory
US20090083392A1 (en) * 2007-09-25 2009-03-26 Sun Microsystems, Inc. Simple, efficient rdma mechanism
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
US8363654B2 (en) * 2008-11-07 2013-01-29 Hewlett-Packard Development Company, L.P. Predictive packet forwarding for a network switch
TW201022935A (en) * 2008-12-12 2010-06-16 Sunplus Technology Co Ltd Control system for accessing memory and method of the same
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8327047B2 (en) * 2010-03-18 2012-12-04 Marvell World Trade Ltd. Buffer manager and methods for managing memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278834A (ja) * 2001-03-21 2002-09-27 Nec Corp キャッシュメモリ装置およびそれを含むデータ処理装置
JP2006513510A (ja) * 2003-01-27 2006-04-20 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 書き込みデータをキャッシュにインジェクトする方法及び装置
JP2005018772A (ja) * 2003-06-25 2005-01-20 Internatl Business Mach Corp <Ibm> 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016123077A (ja) * 2014-12-23 2016-07-07 インテル コーポレイション ネットワークパケットのキャッシュ管理のための技術
US9866498B2 (en) 2014-12-23 2018-01-09 Intel Corporation Technologies for network packet cache management

Also Published As

Publication number Publication date
IL211608B (en) 2018-05-31
CN102195877A (zh) 2011-09-21
JP5733701B2 (ja) 2015-06-10
US20110228674A1 (en) 2011-09-22

Similar Documents

Publication Publication Date Title
JP5733701B2 (ja) パケット処理最適化
US9037810B2 (en) Pre-fetching of data packets
US10938581B2 (en) Accessing composite data structures in tiered storage across network nodes
US10037280B2 (en) Speculative pre-fetch of translations for a memory management unit (MMU)
US9280290B2 (en) Method for steering DMA write requests to cache memory
US6094708A (en) Secondary cache write-through blocking mechanism
US8949544B2 (en) Bypassing a cache when handling memory requests
US6832280B2 (en) Data processing system having an adaptive priority controller
US11601523B2 (en) Prefetcher in multi-tiered memory systems
JP4796346B2 (ja) マイクロコンピュータ
KR20150057798A (ko) 캐시 제어 장치 및 방법
US10810146B2 (en) Regulation for atomic data access requests
US20090006668A1 (en) Performing direct data transactions with a cache memory
US9086976B1 (en) Method and apparatus for associating requests and responses with identification information
US9336162B1 (en) System and method for pre-fetching data based on a FIFO queue of packet messages reaching a first capacity threshold
US7882309B2 (en) Method and apparatus for handling excess data during memory access
US7302528B2 (en) Caching bypass
US20050100042A1 (en) Method and system to pre-fetch a protocol control block for network packet processing
US6947971B1 (en) Ethernet packet header cache
US10740032B2 (en) Resource allocation for atomic data access requests
US20070150653A1 (en) Processing of cacheable streaming data
US20050050280A1 (en) Data accessing method and system for processing unit
US8732351B1 (en) System and method for packet splitting
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
JP2019159858A (ja) ネットワークインタフェース装置、それを有するノードを複数有する情報処理装置及び情報処理装置のノード間送信データ送信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150225

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150406

R150 Certificate of patent or registration of utility model

Ref document number: 5733701

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees