JP2013546068A - 電気通信ネットワーク・アプリケーションのためのロックレス・バッファ管理スキーム - Google Patents

電気通信ネットワーク・アプリケーションのためのロックレス・バッファ管理スキーム Download PDF

Info

Publication number
JP2013546068A
JP2013546068A JP2013536652A JP2013536652A JP2013546068A JP 2013546068 A JP2013546068 A JP 2013546068A JP 2013536652 A JP2013536652 A JP 2013536652A JP 2013536652 A JP2013536652 A JP 2013536652A JP 2013546068 A JP2013546068 A JP 2013546068A
Authority
JP
Japan
Prior art keywords
buffer
pool
memory
buffer management
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013536652A
Other languages
English (en)
Other versions
JP5671150B2 (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
Application filed by アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2013546068A publication Critical patent/JP2013546068A/ja
Application granted granted Critical
Publication of JP5671150B2 publication Critical patent/JP5671150B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Abstract

電気通信ネットワークにおいてモデムの上で使用するためのマルチ・コア・プロセッサにおけるバッファ管理メカニズムが、本明細書において説明される。バッファ管理メカニズムは、1つまたは複数のレイヤ2アプリケーションについてのバッファ管理サービスを提供するバッファ・モジュールを含んでおり、そこではバッファ・モジュールは、ユーザ空間において実行されるアプリケーション・ソフトウェアに対してユーザ空間アプリケーション・インターフェースを少なくとも提供する。バッファ管理メカニズムはまた、複数の、トークンの別個のプールを管理するバッファ・マネージャも含んでおり、そこでは、それらのトークンは、外部メモリにおけるメモリ・エリアに対するポインタを含んでいる。さらに、バッファ管理メカニズムは、ユーザ・プレーン・データの配信のために使用されるバッファ・プールおよびフレーム待ち行列を含むデータ・パス加速アーキテクチャ(DPAA)リソースを管理するカスタム・ドライバを含んでいる。

Description

本発明の例示の実施形態は、マルチ・コア・プロセッサを使用した、単一のモデム・ボードの上のマルチ・セル・サポートのためのロックレス・バッファ管理スキームに関する。本発明は、特にワイヤレス電気通信の技術を対象としており、またそれゆえにそれに特に関連して説明されることになるが、本発明は、他の分野およびアプリケーションにおいても有用性を有し得ることが、理解されるであろう。
背景として、LTE(ロング・ターム・エボリューション(Long Term Evolution))は、将来の通信ネットワーク需要に対処するようにUMTS(ユニバーサル・モバイル・テレコミュニケーション・システム(Universal Mobile Telecommunications System))モバイル電話規格を改善することを目指す急速に進化する3GPPプロジェクトである。LTEは、ワイヤレス・ネットワークの効率および帯域幅を改善し、コストを低減させ、またサービス経験を向上させる。具体的には、LTEは、新しいスペクトルの機会を使用し、また他のオープンな規格とのよりよい統合を提供する。LTEは、一般に、EPS(進化型パケット・システム、進化型パケット・コアとも呼ばれる)と一緒にLTE RAN(無線アクセス・ネットワーク(Radio Access Network))(E−UTRANとしても知られている)を含んでいる。
通信システムは、一般に、2つの主要な機能、すなわち、データ・プレーン機能と、制御プレーン機能とに分割される。以前のLTE製品においては、少なくとも2つのプロセッサ、すなわち制御プレーン機能(非リアル・タイム、例えば、オペレーション、統治、および管理(またはOA&M)に関連した機能、ならびにコール処理管理に関連した機能)をサポートする1つのプロセッサと、データ・プレーン機能(リアル・タイム、例えば、LTEレイヤ2処理)を終端し、サポートする別のプロセッサとが、モデム・ボードの上で使用された。制御プレーンと、データ・プレーンとの両方は、制御プレーンについてのLinuxやデータ・プレーン・コアについてのvXWorks(カリフォルニア州、アラメダ市のウィンド・リバー・システムズ(Wind River Systems)によって作られ、また販売される)などのリアル・タイムOSなど、異なるオペレーティング・システム(OS:operating system)インスタンスを使用した。一般的に、1つのモデム・ボードは、1つのセクタまたはセルをサポートする。そのようにしてマルチ・セル(例えば、3−セルまたは6−セル)構成をサポートするためには、セルの数と同じ数のモデム・ボードを提供することが、必要となる。
マルチ・コア・プロセッサは、モデム・ボードの上のLTEワイヤレス基地局において使用されることもある。PREEMPT_RTパッチが、すべての8つのコアを含む1つのSMPパーティションの上で実行されるSMPリナックス(SMP Linux)などのオペレーティング・システムがある。この構成においては、制御プレーン(非−リアル・タイム・スレッド/プロセス)と、データ・プレーン(リアル・タイム・スレッド/プロセス)とは、たとえそれらが、異なるコアの上で実行されなければならないとしても、同じオペレーティング・システム・インスタンスを共用する。
したがって、ロックレスであるバッファ管理スキームについての必要性があり、そうでなければ、無制限のレイテンシー・スパイク(latency spikes)が、結果として起こることもある。そのような状況は、LTEレイヤ2のリアル・タイム処理の必要性をひどく危うくし、または破壊する可能性がある。SMP環境においては、1つのコアの上で非リアル・タイムのプロセスまたはスレッドによってかけられる(taken)ロックは、そのロックが異なるコアの上で解放されることを待つリアル・タイムのスレッドまたはプロセスについてのレイテンシー・スパイクを引き起こす可能性がある。
本明細書においては、SMP環境におけるロックレス・バッファ管理スキームが、説明されている。例示の実施形態は、マルチ・コアからのバッファについての同時アクセスの調停をするバッファ・マネージャ(BMan:buffer manager)など、モデム・ボードの上のハードウェア・コンポーネントを利用している。ソフトウェア・ロックがかけられないので、ロックが解放されることを待つ一方で、プロセスまたはスレッドは、ブロックされないことになる。PREEMPT_RTを有するSMPリナックスなどのオペレーティング・システム(OS)は、vxWorksなどのハード・コア・リアル・タイムOSではない。それゆえに、そのようなバッファリング・スキームを規定することが重要であり、そうでなければ、オペレーティング・システムは、LTEレイヤ2スケジューラのリアル・タイム処理の必要性を満たさないこともある。アプリケーション・ソフトウェアの観点から、ハードウェア調停は、まるで様々なコアからのバッファについてのすべての要求が、同時に、どのようなプロセスまたはスレッドもブロックされることなく、ほとんど並列に処理されているかのように見えるようにすることになる。その結果、無制限のレイテンシー・スパイクが、存在しないことになる。
本明細書においては、SMPリナックスについてのゼロ・コピー・バッファ管理スキームもまた説明されており、これによってデータは、ユーザ空間アプリケーションによって送信され、または受信される。ユーザ・ツー・カーネル−空間(user−to−kernel−space)境界を通してゼロ・コピーを達成するために、バッファ・メモリは、カーネル・ツー・ユーザ−空間(kernel−to−user−space)マッピングされる必要がある。メモリの隣接チャンクを割り付けることにより、それは、バッファ・プール(buffer pools)のカーネル・ツー・ユーザ−空間マッピングとシーディング(seeding)とをより簡単にする。指定されたプールにおける特定のバッファについてのポインタ・アドレスを計算する数式を有することは、バッファ管理スキームをより決定論的に、また堅牢にし、またそれは、バッファ管理のブック・キーピング・アクティビティと、ガーベージ・コレクション・アクティビティとにおいて大きな助けを提供する。これはまた、メモリ破損についての効率的なチェックを実装する際にも助けとなるであろう。
処理環境において、ミドルウェア・レイヤは、一般的に、アプリケーション・レイヤからすべてのハードウェア特有の実装の詳細を隠す。コア抽象化レイヤ(CAL:core abstraction layer)は、マルチ・コア・プロセッサと、そのデータ・パス加速アーキテクチャ(Data Path Acceleration Architecture)(またはDPAA)についての抽象化を提供する。このモデム・ボードの展開では、CALは、LTE L2アプリケーションについてのゼロ・コピー・ロックレス・バッファ管理スキームなど、様々なサービスと、マルチ・セル構成についての、無線リンク制御(RLC:Radio Link Control)サービス・データ・ユニット(SDU:Service Data Unit)の制御装置ボードに対する送信と制御装置ボードからの受信とについてのバックプレーン・イーサネット・ドライバ(BED:Backplane Ethernet driver)インターフェースについてのサポートとを提供する。
本発明の一態様においては、電気通信ネットワークにおいてモデムの上で使用するためのマルチ・コア・プロセッサにおけるバッファ管理メカニズムが、提供される。バッファ管理メカニズムは、1つまたは複数のレイヤ2アプリケーションについてのバッファ管理サービスを提供するバッファ・モジュールを含んでおり、そこではバッファ・モジュールは、ユーザ空間において実行されるアプリケーション・ソフトウェアに対してユーザ空間アプリケーション・インターフェースを少なくとも提供する。バッファ管理メカニズムはまた、複数の、トークンの別個のプールを管理するバッファ・マネージャも含んでおり、そこでは、それらのトークンは、外部メモリにおけるメモリ・エリアに対するポインタを含んでいる。さらに、バッファ管理メカニズムは、ユーザ・プレーン・データの配信のために使用されるバッファ・プールおよびフレーム待ち行列を含むデータ・パス加速アーキテクチャ(DPAA)リソースを管理するカスタム・ドライバを含んでいる。
オプションとして、カスタム・ドライバは、さらに、一連の機能を実行するように動作することもできる。例えば、カスタム・ドライバは、外部メモリの隣接チャンクを獲得することができる。次に、カスタム・ドライバは、カーネル空間メモリをユーザ空間にマッピングして、データ・コピーを実行する必要なしに、外部メモリに記憶されるデータへのユーザ・モード・アプリケーション・アクセスを可能にすることができる。カスタム・ドライバはまた、プールの数と、プール当たりのトークンの数と、それらのトークンが指し示すバッファのサイズとを初期化することもできる。最終的に、カスタム・ドライバは、トークンでプールをシーディングする(seed)ことができる。
本発明の別の態様においては、電気通信ネットワークにおいてマルチ・セル・サポートを提供するための装置が、提供される。本装置は、一般に、モデム・ボードと、そのモデム・ボードに取り付けられる複数のプロセッサ・コアを備えるマルチ・コア・プロセッサとを含む。マルチ・コア・プロセッサに関連して、単一のパーティションが、その中に含まれるプロセッサ・コアのすべてを用いて規定され、またそこで単一のパーティションを使用して、すべての制御プレーン機能と、すべてのデータ・プレーン機能とを実行する。さらに、コア抽象化レイヤは、単一のパーティションにおけるプロセッサ・コアの上で実行されるアプリケーション・ソフトウェアから任意のコア特有の詳細を隠す。コア抽象化レイヤは、1つまたは複数のレイヤ2アプリケーションについてのバッファ管理サービスを提供するバッファ・モジュールを含んでおり、そこではバッファ・モジュールは、ユーザ空間において実行されるアプリケーション・ソフトウェアに対してユーザ空間アプリケーション・インターフェースを少なくとも提供する。コア抽象化レイヤはまた、複数の、トークンの別個のプールを管理するバッファ・マネージャも含んでおり、そこではそれらのトークンは、外部メモリにおけるメモリ・エリアに対するポインタを含んでいる。さらに、コア抽象化レイヤは、ユーザ・プレーン・データの配信のために使用されるバッファ・プールおよびフレーム待ち行列を含むデータ・パス加速アーキテクチャ(DPAA)リソースを管理するカスタム・ドライバを含んでいる。
本発明の適用可能性のさらなる範囲は、以下で提供される詳細な説明から明らかになるであろう。しかしながら、本発明の精神および範囲の内部の様々な変更形態および修正形態が、当業者には明らかになるので、詳細な説明と特定の例とは、本発明の好ましい実施形態を示しながら、例証だけとして与えられていることを理解されたい。
本発明は、デバイスの構造、構成、および様々な部分の組合せと、方法のステップとの中に存在しており、これによって、企図される目的は、以降でより十分に説明され、特に特許請求の範囲の中で指摘され、また添付の図面において示されるように、達成される。
本発明の態様に従って、プラットフォーム・アーキテクチャの一実施形態を示す図である。 図1に示されるコア抽象化レイヤを実装するための例示のアーキテクチャを示す図である。 マルチ・コア・プロセッサを使用した単一のモデム・ボードの上のマルチ・セル・サポートのための例示のロックレス・バッファ管理スキームを示す図である。 メモリおよびバッファ・プールの獲得およびシーディングの高レベルの図である。
ここで図面を参照すると、それらの提示は例示の実施形態だけを示す目的のためであり、請求する主題を限定する目的のためではないが、図1では、現在説明しようとしている実施形態を組み込むことができるシステムの図を提供している。ここで図1を参照すると、例示のプラットフォーム・アーキテクチャ100が示されている。このアーキテクチャは、一般にモデム・ボードの上で使用されるが、それは、他のアプリケーションにおいても使用され得ることを理解されたい。この実施形態においては、1つのパーティションは、その中のすべての8つのコアを用いて規定される。しかしながら、マルチ・コア・プロセッサ100は、任意の数のコアを有し得ることを理解されたい。この実施形態を用いて、すべてのコア(例えば、8つのコア)の上で実行される単一の対称マルチ処理(SMP:symmetric multiprocessing)オペレーティング・システム(OS)インスタンス102を使用することがそれゆえに可能である。制御プレーンおよびデータ・プレーンは、1つのOSインスタンスの下にあるので、データ・プレーンを伴う問題は、同様に制御プレーンを停止させることにならないことを保証する配慮が、一般に必要とされる。
この例においては、マルチ・コア・プロセッサ100は、3つのセル(図において、104、106、および108として示される)にサービスを行う。各セルは、アップリンク(UL)スケジューラ(図において110、112、および114として示される)と、ダウンリンク(DL)スケジューラ(図1において116、118、および120として示される)とを必要とする。
無線リンク制御(RLC)レイヤを使用して、LTEエア・インターフェースを通して送信され、また受信されるパケット・フレームの上でエラーをセグメント化し、連結させ、また訂正することが、知られている。無線リンク制御および媒体アクセス制御の(RLC/MAC)ソフトウェアは、GPRS(2.5G)ワイヤレス・スタックにおいて使用される。それは、移動局と基地局制御装置(BSC:base station controller)との間の肯定応答されたデータ転送と、肯定応答されていないデータ転送とを提供する。このようにして、RLC/MACブロック122も含まれ、このRLC/MACブロックは、モバイルとネットワークとの間で使用されるエア・インターフェースの上の基本トランスポート・ユニットである。RLC/MACブロックを使用して、データとRLC/MACブロック信号とを搬送する。
マルチ・コア・プロセッサ100はまた、オペレーション、統治、および管理(OA&M)124と、CALLLPモジュール126とを提供する。
さらに、マルチ・コア・プロセッサ100は、コア抽象化レイヤ(CAL)128を含んでおり、このコア抽象化レイヤは、レイヤ2(L2)アプリケーション・ソフトウェアからコア特有の詳細を隠す。レイヤ2は、コンピュータ・ネットワーキングの7−レイヤOSIモデルのうちのデータ・リンク・レイヤ(Data Link Layer)である。データ・リンク・レイヤは、広域ネットワークにおける隣接するネットワーク・ノードの間で、または同じローカル・エリア・ネットワーク・セグメントの上のノードの間でデータを転送するプロトコル・レイヤである。データ・リンク・レイヤは、ネットワーク・エンティティの間でデータを転送する機能手段および手続き手段を提供し、また物理レイヤの中で起こり得るエラーを検出し、また場合によってはエラーを訂正する手段を提供する可能性がある。データ・リンク・プロトコルの例は、ローカル・エリア・ネットワーク(マルチ・ノード)についてのイーサネット、ポイント・ツー・ポイント・プロトコル(PPP:Point−to−Point Protocol)、HDLC、およびポイント・ツー・ポイント(デュアル・ノード)接続についてのADCCPである。この場合には、L2は、一般に、LTEエア・インターフェースについて必要とされるL2スケジューラ処理を意味しており、この処理は、非常に厳しいリアル・タイム要件を有する。
モバイル通信デバイスと、ネットワーク交換サブシステムとの間のトラフィックと信号とを処理する役割を担う基地局のリアル・タイム性能ニーズを満たすために、PREEMPT_RTパッチを有するSMPリナックスなどのOSが、使用されることもある。もちろん、他のオペレーティング・システムも使用され得ることを理解されたい。そのようなSMP構成において決定論的な動作を達成するために、システムは、コア予約とコア親和性構造とを使用して、AMPのようなシステム動作を達成するようにして実装されることが好ましい。これはまた、例えば、PREEMPT_RT OSを有するSMPリナックスの中から最上の性能を得るためにも望ましい。バッファ管理などのロックレス・ゼロ・コピー・サービスと、メッセージング・サービスとの使用は、PREEMPT_RT OSを有するSMPリナックスの使用によって課されることもあるどのようなレイテンシー問題にも対処する助けをすることもできる。
図1に示されるようなコア抽象化レイヤ(128)の主要な機能のうちの1つは、マルチ・コア・プラットフォームの全能力を利用する様々なサービスをL2処理などの高レベル・アプリケーションに提供することである。コア抽象化レイヤは、このようにして、いくつかの目標を達成するように設計される。第1に、それは、より高レベルのアプリケーション・ソフトウェア(すなわち、L2ソフトウェア)からDPAAおよびマルチ・コア特有の実装形態を隠しながら、BED(バックプレーン・イーサネット・ドライバ)のDPAAベースのインターフェースをサポートすべきである。第2に、それは、P4080のDPAAハードウェア・コンポーネントを利用して、入口方向と出口方向との両方においてユーザ・プレーン・データについての加速されたデータ・パスを提供すべきである。第3に、それは、構成変化に(すなわち、コード変更を必要とせずに)簡単に適応するように、できるだけ多くの柔軟性を提供するべきである。CAL構成の一例は、バッファ・プールと、入口フレーム待ち行列と、出口フレーム待ち行列とについてのDPAAリソース構成である。
次に図2を参照すると、これらの目標および他の目標を達成する例示のアーキテクチャ200が、示されている。従来のコンピュータのオペレーティング・システムは、通常、カーネル空間と、ユーザ空間とに仮想メモリを分離することが知られている。カーネル空間は、カーネルと、カーネル拡張と、ほとんどのデバイス・ドライバとを実行するために厳しく予約される。対照的に、ユーザ空間は、すべてのユーザ・モード・アプリケーションが機能し、またこのメモリが必要なときに交換され得る場合のメモリ・エリアである。これに関して、コア抽象化レイヤ(CAL)201は、それだけには限定されないが、フレーム・マネージャ(FMan)230および232に対してLTEネットワーク構成と任意の静的PCDルールとをロードし、また1組の構成ファイルに基づいてCALフレームワークをセットアップするコア抽象化レイヤ初期化(CALInit)モジュール202と、コア抽象化レイヤ・バッファ(CALBuf)モジュール204と、別のボード(すなわち、eCCM)に対してユーザ・プレーン・データを送信し、または別のボードからユーザ・プレーン・データを受信するメッセージング・サービスをL2ソフトウェアに対して提供するコア抽象化レイヤ・メッセージング(CALMsg)モジュール206と、適切なコアに対して入口フレームをルーティングするために各FMan(230、232)によって使用される、構文解析、分類および配信(PDC:Parsing, Classification and Distribution)のルールおよび構成を提供するコア抽象化レイヤの構文解析、分類および配信の(CALPcdFmc)モジュール208と、カーネル空間のモジュールである、コア抽象化レイヤDPAAドライバ(CALDpaaDriver)212においてトレースをイネーブルにし、またディスエーブルにするためのトレース能力を提供するコア抽象化レイヤDPAAトレース(CALDpaaTrace)モジュール210とを含む様々なモジュールをユーザ空間の中に含んでいる。
アーキテクチャ200は、Preempt RTパッチを有するSMPリナックスなど、適切なオペレーティング・システム214をさらに含んでいる。オペレーティング・システム214は、順に、上述のCALDpaaドライバ212、少なくとも1つのフレーム・マネージャ(FMan)ドライバ216、少なくとも1つのバッファ・マネージャ(BMan)ドライバ218、少なくとも1つの待ち行列マネージャ(QMan)ドライバ220など、様々なドライバをサポートする。
図2に示されるように、アーキテクチャ200は、スケーラブルなオン・チップ・ネットワークが、キャッシュ、スタンドアロン・キャッシュ、およびメモリ・サブシステムと複数のパワー・アーキテクチャ処理コアを接続するために適した相互接続アーキテクチャであるP4080CoreNetファブリック(P4080 CoreNet fabric)222を適切に含むことができる。
P4080プロセッサは、新しいデータ・パス加速アーキテクチャ(DPAA)の実装形態を含んでいる。したがって、アーキテクチャ200は、P4080 DPAA 224をさらに含むこともある。DPAA 224は、ネットワーク・インターフェースとハードウェア・アクセラレータとを含めて、リソースの負荷拡散や共用化などのマルチ・コア・ネットワーク処理を最適化するように設計される。示されるように、DPAA 224は、一般に、BMan 226、QMan 228、第1および第2のFMan それぞれ230および232など、様々なマネージャを含んでいる。
ワイヤレス多重アクセス通信システムにおいては、トランスミッタとレシーバとは、マルチ・レイヤの通信スタックを使用して通信することができることが、知られている。それらのレイヤは、例えば、物理レイヤ、媒体アクセス制御(MAC)レイヤ、無線リンク制御(RLC)レイヤ、プロトコル・レイヤ(例えば、パケット・データ・コンバージェンス・プロトコル(PDCP:packet data convergence protocol)レイヤ)、アプリケーション・レイヤなどを含むことができる。RLCレイヤは、PDCPレイヤからサービス・データ・ユニット(SDU)を受信し、またMACレイヤに対して伝送するためにSDUをRLCプロトコル・データ・ユニット(PDU:protocol data units)に連結し、またはセグメント化する。
それに応じて、CALBufモジュール204は、RLC SDU処理において使用するために、L2アプリケーションについてのロックレス・バッファ管理サービスを容易にする。当技術分野において知られているように、非ブロッキング・アルゴリズムは、共用されたリソースについて競合するスレッドが、それらの実行が相互排除によって無期限に延長されないことを保証する。非ブロッキング・アルゴリズムは、システム規模の進化が保証される場合に、ロックレス(またはロックフリー)である。CALBufモジュール204はまた、バッファ・プール統計データ(例えば、プール不足状態、不足カウント、プール使用可能状態、プール割付エラー・カウントなど)についての問い合わせもサポートする。CALBufモジュール204は、CALDpaaドライバ212とインターフェースして、それらのサービスを実装する。CALBufモジュール204は、マルチ・コア環境において適切なシステム・オペレーションのために非常に重要であるロックレス・バッファ管理スキームを提供し、ここで、非リアル・タイム・プロセスによってかけられるロックは、そのロックの解放を待つリアル・タイム・プロセスについてレイテンシー問題を引き起こす可能性がある。
CALDpaaDriver 212は、CAL 201のカーネル空間コンポーネントであり、BmanおよびQmanのAPIを使用してバッファ管理サービスとメッセージング・サービスとを実装し、また提供する助けを行う。本明細書において使用されるように、用語API(またはアプリケーション・プログラミング・インターフェース)は、ソフトウェア・プログラムによって実装されるインターフェースを意味しており、このインターフェースは、それが、他のソフトウェアと相互作用することを可能にする。それは、ユーザ・インターフェースが、ユーザとコンピュータとの間の相互作用を容易にするやり方と同様に、異なるソフトウェア・プログラムの間の相互作用を容易にする。APIは、それらの語彙と呼び出し規則とを決定するようにアプリケーション、ライブラリ、およびオペレーティング・システムによって実装され、またそれらのサービスにアクセスするために使用される。APIは、ルーチンと、データ構造と、オブジェクト・クラスと、APIの消費者と実装者との間で通信するために使用されるプロトコルとについての仕様を含むことができる。
CALDpaaDriver 212は、ユーザ・プレーン・データ配信のために使用されるDPAAリソース(バッファ・プールおよびフレーム待ち行列)を管理する役割と、オープン、リリース、初期化のためのi−o−制御(ioctl)、バッファ管理、メッセージング・サービスなど、様々なファイル・オペレーションを経由してユーザ空間インターフェースを他のCALモジュールに対して提供する役割と、カーネル・ツー・ユーザ−空間(K−U)バッファ・マッピングを実行する役割と、DPAAのバッファ・プール、レシーバおよびトランスミッタの統計データを提供する役割と、リング・バッファを管理するためのサービスを実装する役割とを担う。リング・バッファは、CALのL2ソフトウェア待ち行列を表し、またそれらは、一般に、特定のL2 DLTに向かうことになっているFDを記憶するために使用されることに注意されたい。CALMsgモジュール206は、L2が、リングからバッファ記述子を取り出すためのAPIを提供する。
上記で説明されるCALコンポーネントのすべては、一般に、CALDpaaDriver 212を例外として、プラットフォーム・ミドルウェア(ユーザ空間において実行される)である。CALDpaaDriver 212は、カーネル空間において実行されるカスタム・ドライバであり、またそれは、CALユーザ空間ミドルウェアによって必要とされるサービスを−とりわけ、P4080 DPAAハードウェア・コンポーネントに依存するこれらのサービスを−実装し、また提供するように設計される。
CALBufモジュール204は、「高速パス」データ処理のために排他的に使用されるバッファ管理サービスを提供する。CALBufモジュール204は、ユーザ空間APIをL2アプリケーションに対して提供する。CALBufモジュール204は、CALDpaaDriver 212と協調して、CALDpaaドライバ212が生成するが、Bman 226によって管理されるバッファについてのゼロ・コピーおよびロックレスのバッファ管理サービスを提供する。
CALBufモジュール204は、とりわけ以下のサービス、すなわち
1.バッファ・サイズを仮定して、バッファを獲得するサービスと、
2.与えられた数の、与えられたサイズのバッファを獲得し、次いで、バッファの要求された数まで使用可能なバッファのリストを戻すサービスと、
3.指定されたバッファを解放するサービスと、
4.バッファのリストを解放するサービスと、
5.バッファ・プールの統計データについて問い合わせを行うサービスと
をサポートするAPIを実装し、また提供する。
上で述べられるように、ロックレス・バッファ管理スキームは、マルチ・コア・プロセッサ・ベースのモデム・ボードの性能ニーズを満たすために重要であり、このマルチ・コア・プロセッサ・ベースのモデム・ボードは、すべての8つのコアから成る1つのパーティションを使用し、またPREEMPT_RTを有するSMPリナックスを実行する。そのようなスキームなしには、システムは、無制限のレイテンシー・スパイクの影響を受ける可能性があり、このレイテンシー・スパイクは、全体システムを破壊してしまう可能性がある。
図3を参照すると、BMan 226や他の適切なコンポーネントなど、マルチ・コア・プロセッサの上のハードウェア・コンポーネント302を使用して、ロックレス・バッファ管理スキームを実装することができる。この例におけるハードウェア・コンポーネント302は、48−ビットのトークンの64個の別個のプール(または待ち行列)を管理する。これらのトークンは、バッファ・メモリに対するポインタとして機能する。プールと、各プールの内部のトークンとの数は、変化することができる。これに関して、異なるサイズの64個のバッファ・プール(例えば、1つのプールは、2KBバッファを指し示す10個のトークンを有することもあり、第2のプールは、4KBバッファを指し示す50個のトークンを有することもあるなどである)が、ハードウェア・コンポーネント302の中で規定される。例として、ハードウェア・コンポーネント302は、各トークンが、サイズが1KB(1024バイト)のメモリの中のバッファを指し示す10個のトークンを有する、参照番号304として示される第1のプール(すなわち、プール1)を含むことができる。しかしながら、最初のプール302は、より多くの48−ビットのトークンを含むことができることを理解されたい。この例においてもやはり、参照番号310として示される最後のプール(すなわち、プール64)は、各トークンが、サイズが8KBのバッファを指し示す10個のトークンを有する。この場合にも、最後のプール310は、より多くの48ビットのトークンを含むことができることを理解されたい。図3には示されていないが、ハードウェア・コンポーネント302は、サイズが変化している可能性がある62個の残りのプールを有することに、さらに注意されたい。しかしながら、例証の目的のために、62個の残りのプール(すなわち、プール2〜63)のおのおのは、おのおのが、サイズが1KBのバッファを指し示す10個のトークンを有することが仮定される。
本明細書において提供される例示の実施形態のオペレーション中に、バッファ管理スキームは、それが、ある種のサイズのバッファを必要とするたびごとに、トークン(すなわち、バッファ・メモリに対するポインタ)についてハードウェア・コンポーネント302に対して要求を送信する。これは、以下でより詳細に示される。
以上で述べられたように、CALBuf APISは、バッファを獲得する。CALBuf 212は、ユーザ空間において実行されるアプリケーション・ソフトウェアに対してユーザ空間のAPIを提供する。アプリケーションが、バッファを必要とするときに、それは、ある種のサイズのバッファを要求するCALBuf APIを呼び出す。次いで、CALBufモジュール204は、CALDpaaDriver 212などのカーネル空間モジュールからの助けを用いて、指定されたサイズのトークン/バッファをBMan 226に要求する。BMan 226は、複数のコアからの同時アクセスの調停をするハードウェア・エンティティである。したがって、BMan 226は、いくつかのL2エンティティが、並列に実行しているので、複数のコアから同時にトークン/バッファについての要求を受信する。次いで、BMan 226は、ソフトウェア・ロックについての必要性なしにハードウェアの形で調停を実行し、また要求するL2エンティティのおのおのは、ブロックされることなくバッファを受信する。ハードウェア・コンポーネント302は、複数のコアからの同時アクセスの調停をするので、その結果は、以下でより十分に説明されるように、ソフトウェアでのロックまたはブロッキング・セマフォの必要をなくすソフトウェア・ロックレス・バッファ管理スキームである。
最初に、CALDpaaDriver 212は、カーネル空間にメモリの隣接チャンク316(例えば、サイズが1GB)を割り付ける。このメモリは、プロセッサ100が使用する外部DDRメモリであり、またそれは、一般的に、ボード上で、プロセッサと同一場所に配置される。次いで、ハードウェア支援されたプールは、バッファとして使用されることになるメモリ316のセクションを指し示すトークンを用いてシーディングされる。言い換えれば、メモリの隣接チャンク316は、各バッファ・プールが、特定のバッファ・サイズ特性を有する複数のバッファ・プールを含んでいる。64個のバッファ・プール(プール304、310など)の内部のトークンを使用して、ある種のサイズの特定のバッファを開始するメモリ316の内部のアドレスを迅速に取得する。メモリの隣接チャンク316は、開始アドレスと終了アドレスとを有しており、これらのアドレスは、一緒に、メモリのチャンク316のサイズおよびロケーションを規定する。
メモリ・チャンク316の開始アドレスは、バッファ・プールについてのシード値を計算するときのベース・ポインタとして使用される。プールの内部の与えられた任意のトークンについてのシード・アドレスは、次の式、すなわち、
Figure 2013546068
によって計算することができ、式中で、xは、プール番号であり、yは、プールxの内部のバッファ(またはトークン)番号であり、プール_サイズは、プールkの内部のトークンの数であり、またプール_バッファ_サイズは、プールkの内部のおのおのの個別のバッファのサイズ(2KBなど)である。
例証の目的のために、メモリ・チャンク316の開始アドレスは、0x0000であることが、仮定される。したがって、上記式を使用すると、1KBのサイズのバッファを指し示す最初のプール(プール1)の最初のトークン(トークン0)についてのシード値は、0(例えば、0x000)である。プール1の次のトークン(トークン1)は、1024(例えば、0x400)などである。プール1〜63は、おのおのサイズ1KBのバッファを指し示す10個のトークンを有すること、およびプール64は、サイズ8KBのバッファを指し示す10個のトークンを有することを仮定すると、最後のプール(プール64)は、64,512(例えば、0xFC00)の第1のトークン値(トークン0)を有することになり、次のトークン値(トークン1)は、72704(例えば、0x11C00)の値を有することになるなどである。
ひとたびすべてのプールが、適切なバッファ・トークンを用いてシーディングされた後に、次いで、ハードウェア・コンポーネント302は、ソフトウェア・ロックレス・バッファ管理スキームを実装する際に、バッファ管理スキームを支援することができる。
メモリ316とバッファ・プールとの獲得およびシーディングの高レベルの図が、図4によって示される。ステップ410において、CALDpaaDriver 212は、上記で説明されるように外部DDRメモリの隣接チャンク316を獲得する。
ステップ420において、CALDpaaDriver 212は、カーネル空間のメモリ316をユーザ空間にマッピングして、データ・コピーを実行する必要なしに、メモリ・エリア316に記憶されるデータに対するユーザ・モード・アプリケーション・アクセスを可能にしている。リナックスのGPL問題に起因して、L2スケジューラは、ユーザ空間において実行される。それゆえに、ユーザ空間のアプリケーションは、カーネル空間のメモリにアクセスすることができないことになり、それでメモリは、カーネル空間からユーザ空間にマッピングされて、ユーザ空間のアプリケーションが、バッファ・メモリに直接にアクセスすることを可能にしている。これは、データ・コピーについての必要性をなくしている。
ステップ430において、CALDpaaDriver 212は、プールの数と、プール当たりのトークンの数と、トークンが指し示すバッファのサイズとを初期化する。
ステップ440において、CALDpaaDriver 212は、図3に関して説明される式のように、トークン(メモリ・ポインタ)を用いてプールをシーディングする。
動作中に、パケットが到着するときなど、バッファ管理スキームが、バッファを必要とするときはいつでも、BMan226は、適切なハードウェア・プールからトークン(すなわち、バッファ・メモリに対するポインタ)を待ち行列から取り出す(すなわち、取り除く)。同様に、バッファが解放されるときに、バッファ管理スキームは、トークン(すなわち、バッファ・メモリ・ポインタ)をハードウェア・プールの上へと戻して待ち行列に加える(すなわち、元に戻す)。
適切には、各バッファは、一般に、バッファ管理スキームによる使用のために予約される数バイトのヘッダおよびトレーラを有することになる。これらのヘッダおよびトレーラは、誰がバッファを所有するかなど、重要なブック・キーピング情報を含んでいる。この情報は、特定のプロセスによって所有されるバッファをハードウェア・プールに解放して戻すためセル回復中に必要とされることを理解されたい。
当業者は、様々な上記で説明された方法のステップが、プログラムされたコンピュータによって実行され得ることを簡単に認識するであろう。本明細書においては、いくつかの実施形態はまた、プログラム・ストレージ・デバイスを、例えば、デジタル・データ・ストレージ媒体を対象として含むことを意図しており、このプログラム・ストレージ・デバイスは、マシン読み取り可能、またはコンピュータ読み取り可能であり、また命令のマシン実行可能プログラム、またはコンピュータ実行可能プログラムを符号化し、そこでは前記命令は、前記上記で説明された方法のステップのうちの一部または全部を実行する。プログラム・ストレージ・デバイスは、例えば、デジタル・メモリ、磁気ディスクや磁気テープなどの磁気ストレージ媒体、ハード・ドライブ、または光学的読取り可能デジタル・データ・ストレージ媒体とすることができる。実施形態はまた、上記で説明された方法の前記ステップを実行するようにプログラムされるコンピュータを対象として含むようにも意図される。
上記説明は、単に本発明の特定の実施形態の開示を提供しているにすぎず、また本発明をそれだけに限定する目的のために意図されてはいない。したがって、本発明は、上記で説明された実施形態だけには限定されない。もっと正確に言えば、当業者は、本発明の範囲内に含まれる代替的な実施形態を考えることができることが、認識される。

Claims (8)

  1. 電気通信ネットワークにおいてモデムの上で使用するためのマルチ・コア・プロセッサにおいて、バッファ管理メカニズムであって、
    1つまたは複数のレイヤ2アプリケーションについてのロックレスのゼロ・コピー・バッファ管理サービスを提供するバッファ・モジュールを備え、前記バッファ・モジュールはユーザ空間において実行されるアプリケーション・ソフトウェアに対してユーザ空間アプリケーション・インターフェースを少なくとも提供し、さらに、
    トークンの複数の別個のプールを管理するバッファ・マネージャを備え、前記トークンは、外部カーネル空間メモリにおけるメモリ・エリアに対するポインタを含み、さらに、
    ユーザ・プレーン・データの配信のために使用されるバッファ・プールおよびフレーム待ち行列を含むデータ・パス加速アーキテクチャ(DPAA)リソースを管理するカスタム・ドライバを備え、前記カスタム・ドライバは、
    前記外部カーネル空間メモリの隣接チャンクを獲得し、
    さもなければ、カーネル・ツー・ユーザ−空間境界をデータが横切るときはいつでも生じるデータ・コピーを取り除くために、前記外部カーネル空間メモリに記憶されるデータへのユーザ・モード・アプリケーション・アクセスを可能にするように、カーネル空間メモリの前記隣接チャンクをユーザ空間にマッピングし、
    プールの数と、プール当たりのトークンの数と、前記トークンが指し示す前記バッファのサイズとを初期化し、そして、
    トークンを用いて前記プールをシーディングする、
    ことにより、前記バッファ・モジュールについての事前に割り付けられたメモリをロックレスのゼロ・コピー・バッファ管理に提供するようにさらに動作する、バッファ管理メカニズム。
  2. 前記バッファ・モジュールは、さらに、以下のサービス、すなわち、
    バッファを獲得するサービスと、
    与えられた数の、与えられたサイズのバッファを獲得し、次いで前記要求された数のバッファまでの使用可能なバッファのリストを戻すサービスと、
    指定されたバッファを解放するサービスと、
    バッファのリストを解放するサービスと、
    バッファ・プール統計データについて問い合わせを行うサービスと
    のうちの1つまたは複数をサポートするゼロ・コピーおよびロックレスのアプリケーション・プログラミング・インターフェースを実装し、また提供するように動作する、請求項1に記載のバッファ管理メカニズム。
  3. 前記メモリ・チャンクの開始アドレスは、前記バッファ・プールについてのシード値を計算するときに、ベース・ポインタとして使用される、請求項1に記載のバッファ管理メカニズム。
  4. 前記バッファ・マネージャは、さらに、ロックレス・ハードウェア(DPAA)調停を使用し、またパケットが到着した後に前記プールからトークンを待ち行列から取り出し、またバッファが解放されるときに、前記トークンを前記プール上へと戻して待ち行列に加えるように動作する、請求項1に記載のバッファ管理メカニズム。
  5. 前記バッファ・マネージャは、さらに、複数のコアから同時にバッファまたはトークンについての要求を受信し、またソフトウェアでのソフトウェア・ロックまたはブロッキング・セマフォの必要なしに、ハードウェアでのロックレス調停を実行するように動作する、請求項1に記載のバッファ管理メカニズム。
  6. 電気通信ネットワークにおいてマルチ・セル・サポートを提供する装置であって、
    モデム・ボードと、
    前記モデム・ボードに取り付けられた複数のプロセッサ・コアを含むマルチ・コア・プロセッサを備え、単一のパーティションが、その中に含まれる前記プロセッサ・コアのすべてを用いて規定され、また前記単一のパーティションを使用して、すべての制御プレーン機能、およびすべてのデータ・プレーン機能、ならびに前記単一のパーティションにおいて前記プロセッサ・コアの上で実行されるアプリケーション・ソフトウェアから任意のコア特有の詳細を隠すコア抽象化レイヤを実行し、
    前記コア抽象化レイヤは、少なくとも以下のモジュール、すなわち、
    1つまたは複数のレイヤ2アプリケーションについてのロックレスのゼロ・コピー・バッファ管理サービスを提供するバッファ・モジュールであって、ユーザ空間において実行されるアプリケーション・ソフトウェアに対してユーザ空間アプリケーション・インターフェースを少なくとも提供するバッファ・モジュールと、
    複数の、トークンの別個のプールを管理するバッファ・マネージャであって、前記トークンは、外部カーネル空間メモリにおけるメモリ・エリアに対するポインタを含む、バッファ・マネージャと、
    ユーザ・プレーン・データの配信のために使用されるバッファ・プールおよびフレーム待ち行列を含むデータ・パス加速アーキテクチャ(DPAA)リソースを管理するカスタム・ドライバと
    を備え、前記カスタム・ドライバは、さらに、
    前記外部カーネル空間メモリの隣接チャンクを獲得し、
    さもなければ、カーネル・ツー・ユーザ−空間境界をデータが横切るときはいつでも生じるデータ・コピーを取り除くために、前記外部カーネル空間メモリに記憶されるデータへのユーザ・モード・アプリケーション・アクセスを可能にするように、カーネル空間メモリの前記隣接チャンクをユーザ空間にマッピングし、
    プールの数と、プール当たりのトークンの数と、前記トークンが指し示す前記バッファのサイズとを初期化し、そして、
    トークンを用いて前記プールをシーディングする、
    ことにより、前記バッファ・モジュールについての事前に割り付けられたメモリをロックレスのゼロ・コピー・バッファ管理に提供するように動作する、装置。
  7. 前記バッファ・モジュールは、さらに、以下のサービス、すなわち、
    バッファを獲得するサービスと、
    与えられた数の、与えられたサイズのバッファを獲得し、次いで前記要求された数のバッファまでの使用可能なバッファのリストを戻すサービスと、
    指定されたバッファを解放するサービスと、
    バッファのリストを解放するサービスと、
    バッファ・プール統計データについて問い合わせを行うサービスと
    のうちの1つまたは複数をサポートするゼロ・コピーおよびロックレスのアプリケーション・プログラミング・インターフェースを実装し、また提供するように動作する、請求項5に記載の装置。
  8. 前記メモリ・チャンクの開始アドレスは、前記バッファ・プールについてのシード値を計算するときに、ベース・ポインタとして使用される、請求項5に記載の装置。
JP2013536652A 2010-10-28 2011-10-12 電気通信ネットワーク・アプリケーションのためのロックレス・バッファ管理スキーム Expired - Fee Related JP5671150B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/914,135 2010-10-28
US12/914,135 US8504744B2 (en) 2010-10-28 2010-10-28 Lock-less buffer management scheme for telecommunication network applications
PCT/US2011/055855 WO2012058001A1 (en) 2010-10-28 2011-10-12 Lock-less buffer management scheme for telecommunication network applications

Publications (2)

Publication Number Publication Date
JP2013546068A true JP2013546068A (ja) 2013-12-26
JP5671150B2 JP5671150B2 (ja) 2015-02-18

Family

ID=44872618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013536652A Expired - Fee Related JP5671150B2 (ja) 2010-10-28 2011-10-12 電気通信ネットワーク・アプリケーションのためのロックレス・バッファ管理スキーム

Country Status (6)

Country Link
US (1) US8504744B2 (ja)
EP (1) EP2633404B1 (ja)
JP (1) JP5671150B2 (ja)
KR (1) KR101529895B1 (ja)
CN (1) CN103229145B (ja)
WO (1) WO2012058001A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8634302B2 (en) * 2010-07-30 2014-01-21 Alcatel Lucent Apparatus for multi-cell support in a network
US8737417B2 (en) 2010-11-12 2014-05-27 Alcatel Lucent Lock-less and zero copy messaging scheme for telecommunication network applications
US8730790B2 (en) 2010-11-19 2014-05-20 Alcatel Lucent Method and system for cell recovery in telecommunication networks
US8861434B2 (en) 2010-11-29 2014-10-14 Alcatel Lucent Method and system for improved multi-cell support on a single modem board
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US9357482B2 (en) 2011-07-13 2016-05-31 Alcatel Lucent Method and system for dynamic power control for base stations
US9378059B2 (en) * 2012-10-19 2016-06-28 Argyle Data, Inc. Multi-threaded, lockless data parallelization
CN104424129B (zh) 2013-08-19 2019-07-26 上海芯豪微电子有限公司 基于指令读缓冲的缓存系统和方法
CN103945456B (zh) * 2014-05-12 2017-06-27 武汉邮电科学研究院 一种基于Linux系统的LTE基站用户面高效UDP数据发送优化方法
CN104102494B (zh) * 2014-07-31 2017-07-25 武汉邮电科学研究院 无线通信基站空口数据cipher加速方法
CN105656805B (zh) * 2016-01-20 2018-09-25 中国人民解放军国防科学技术大学 一种基于控制块预分配的分组接收方法和装置
US10380012B2 (en) 2016-04-22 2019-08-13 Samsung Electronics Co., Ltd. Buffer mapping scheme involving pre-allocation of memory
CN111782419B (zh) * 2020-06-23 2023-11-14 北京青云科技股份有限公司 一种缓存更新方法、装置、设备及存储介质
US11188482B1 (en) * 2020-06-30 2021-11-30 Wolly Inc. Apparatus and method of zero-copy application co-processor with storage class memory
KR102461039B1 (ko) * 2021-02-24 2022-11-01 성균관대학교산학협력단 상용 이더넷 장비 기반의 gpu 내부 패킷 입출력 방법 및 장치

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5000A (en) * 1847-03-06 Improvement in propellers for vessels
US10007A (en) * 1853-09-13 Gear op variable cut-ofp valves for steau-ehgietes
US11030A (en) * 1854-06-06 Water-level indicator for steam-boilers
JP2004164202A (ja) * 2002-11-12 2004-06-10 Matsushita Electric Ind Co Ltd データ送受システム、リングバッファ制御方法、制御プログラム
WO2008005793A2 (en) * 2006-06-30 2008-01-10 Symbol Technologies, Inc. Systems and methods for processing data packets using a multi-core abstraction layer (mcal)
JP2012506581A (ja) * 2008-10-24 2012-03-15 コミシリア ア レネルジ アトミック エ オ エナジーズ オルタネティヴズ 複数のメモリ要素に分配されたメモリ空間内でデータ・バッファを管理する装置

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913230A (en) * 1997-01-07 1999-06-15 Richardson; John J. Object and method for providing efficient multi-user access to shared operating system kernal code using instancing
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
WO2001063416A1 (en) 2000-02-24 2001-08-30 Bops Incorporated Methods and apparatus for scalable array processor interrupt detection and response
US6799200B1 (en) 2000-07-18 2004-09-28 International Business Machines Corporaiton Mechanisms for efficient message passing with copy avoidance in a distributed system
US6735620B1 (en) 2000-07-18 2004-05-11 International Business Machines Corporation Efficient protocol for retransmit logic in reliable zero copy message transport
US7089289B1 (en) 2000-07-18 2006-08-08 International Business Machines Corporation Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices
US7089335B2 (en) 2000-10-30 2006-08-08 Microsoft Corporation Bridging multiple network segments and exposing the multiple network segments as a single network to a higher level networking software on a bridging computing device
US7768522B2 (en) * 2002-01-08 2010-08-03 Apple Inc. Virtualization of graphics resources and thread blocking
ATE443291T1 (de) * 2002-06-19 2009-10-15 Ericsson Telefon Ab L M Netzwerkeinrichtungs-treiberarchitektur
US7539853B2 (en) 2002-11-18 2009-05-26 Arm Limited Handling interrupts in data processing of data in which only a portion of a function has been processed
US7003597B2 (en) 2003-07-09 2006-02-21 International Business Machines Corporation Dynamic reallocation of data stored in buffers based on packet size
US7206966B2 (en) * 2003-10-22 2007-04-17 Hewlett-Packard Development Company, L.P. Fault-tolerant multi-core microprocessing
US7370326B2 (en) 2004-04-02 2008-05-06 Emulex Design & Manufacturing Corporation Prerequisite-based scheduler
JP4414305B2 (ja) 2004-08-19 2010-02-10 富士通株式会社 中継装置および中継装置の再起動方法並びに中継装置用ソフトウェアプログラム
US7620753B1 (en) 2005-03-17 2009-11-17 Apple Inc. Lockless access to a ring buffer
US20070113229A1 (en) 2005-11-16 2007-05-17 Alcatel Thread aware distributed software system for a multi-processor
US20080002681A1 (en) 2006-06-30 2008-01-03 Symbol Technologies, Inc. Network wireless/RFID switch architecture for multi-core hardware platforms using a multi-core abstraction layer (MCAL)
US20080002702A1 (en) 2006-06-30 2008-01-03 Symbol Technologies, Inc. Systems and methods for processing data packets using a multi-core abstraction layer (MCAL)
CN1996271B (zh) * 2006-12-30 2013-08-28 华为技术有限公司 一种数据传输的方法及系统
US8059532B2 (en) 2007-06-21 2011-11-15 Packeteer, Inc. Data and control plane architecture including server-side triggered flow policy mechanism
US8112594B2 (en) 2007-04-20 2012-02-07 The Regents Of The University Of Colorado Efficient point-to-point enqueue and dequeue communications
US8055822B2 (en) 2007-08-21 2011-11-08 International Business Machines Corporation Multicore processor having storage for core-specific operational data
US8194699B2 (en) 2007-09-21 2012-06-05 Intel Corporation Radio scheduler and data plane interface
US8527622B2 (en) 2007-10-12 2013-09-03 Sap Ag Fault tolerance framework for networks of nodes
FI20085217A0 (fi) 2008-03-07 2008-03-07 Nokia Corp Tietojenkäsittelyjärjestely
CN101546276B (zh) 2008-03-26 2012-12-19 国际商业机器公司 多核环境下实现中断调度的方法及多核处理器
US8024417B2 (en) 2008-06-04 2011-09-20 Microsoft Corporation Simple flow control protocol over RDMA
CN101340574B (zh) * 2008-08-04 2010-09-08 中兴通讯股份有限公司 一种实现零拷贝发送流媒体数据的方法及系统
US8271996B1 (en) 2008-09-29 2012-09-18 Emc Corporation Event queues
US8099546B2 (en) 2009-06-09 2012-01-17 Red Hat, Inc. Mechanism for a lockless ring buffer in overwrite mode
US8413153B2 (en) 2009-06-12 2013-04-02 Freescale Semiconductor Inc. Methods and systems for sharing common job information
US8634302B2 (en) 2010-07-30 2014-01-21 Alcatel Lucent Apparatus for multi-cell support in a network
US20120093047A1 (en) 2010-10-14 2012-04-19 Alcatel-Lucent USA Inc. via the Electronic Patent Assignment System (EPAS) Core abstraction layer for telecommunication network applications
US8737417B2 (en) 2010-11-12 2014-05-27 Alcatel Lucent Lock-less and zero copy messaging scheme for telecommunication network applications
US8730790B2 (en) 2010-11-19 2014-05-20 Alcatel Lucent Method and system for cell recovery in telecommunication networks
US8861434B2 (en) 2010-11-29 2014-10-14 Alcatel Lucent Method and system for improved multi-cell support on a single modem board
US9357482B2 (en) 2011-07-13 2016-05-31 Alcatel Lucent Method and system for dynamic power control for base stations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5000A (en) * 1847-03-06 Improvement in propellers for vessels
US10007A (en) * 1853-09-13 Gear op variable cut-ofp valves for steau-ehgietes
US11030A (en) * 1854-06-06 Water-level indicator for steam-boilers
JP2004164202A (ja) * 2002-11-12 2004-06-10 Matsushita Electric Ind Co Ltd データ送受システム、リングバッファ制御方法、制御プログラム
WO2008005793A2 (en) * 2006-06-30 2008-01-10 Symbol Technologies, Inc. Systems and methods for processing data packets using a multi-core abstraction layer (mcal)
JP2012506581A (ja) * 2008-10-24 2012-03-15 コミシリア ア レネルジ アトミック エ オ エナジーズ オルタネティヴズ 複数のメモリ要素に分配されたメモリ空間内でデータ・バッファを管理する装置

Also Published As

Publication number Publication date
CN103229145A (zh) 2013-07-31
JP5671150B2 (ja) 2015-02-18
WO2012058001A1 (en) 2012-05-03
KR20130087026A (ko) 2013-08-05
KR101529895B1 (ko) 2015-06-18
US8504744B2 (en) 2013-08-06
US20120110223A1 (en) 2012-05-03
EP2633404B1 (en) 2018-09-12
EP2633404A1 (en) 2013-09-04
CN103229145B (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
JP5671150B2 (ja) 電気通信ネットワーク・アプリケーションのためのロックレス・バッファ管理スキーム
KR101549422B1 (ko) 통신 네트워크 애플리케이션들을 위한 락-리스 및 제로 카피 메시징 스킴
JP5726320B2 (ja) 単一のモデム・ボードにおける改善されたマルチセル・サポートのための方法およびシステム
US11249779B2 (en) Accelerator interconnect assignments for virtual environments
KR101636308B1 (ko) 전기 통신 네트워크 애플리케이션들을 위한 코어 추상화 계층
CN114303138A (zh) 用于多核计算环境的硬件队列调度
US8730790B2 (en) Method and system for cell recovery in telecommunication networks
WO2013048409A1 (en) Writing message to controller memory space
CN116266141A (zh) 用于使用负载平衡指派和检查反重放序列号的方法和装置
US11552907B2 (en) Efficient packet queueing for computer networks

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140501

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140801

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141031

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141218

R150 Certificate of patent or registration of utility model

Ref document number: 5671150

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

LAPS Cancellation because of no payment of annual fees