JP2014501003A - 遠隔通信ネットワーク・アプリケーションのための、ロックレスでゼロ・コピーのメッセージング・スキーム - Google Patents

遠隔通信ネットワーク・アプリケーションのための、ロックレスでゼロ・コピーのメッセージング・スキーム Download PDF

Info

Publication number
JP2014501003A
JP2014501003A JP2013538754A JP2013538754A JP2014501003A JP 2014501003 A JP2014501003 A JP 2014501003A JP 2013538754 A JP2013538754 A JP 2013538754A JP 2013538754 A JP2013538754 A JP 2013538754A JP 2014501003 A JP2014501003 A JP 2014501003A
Authority
JP
Japan
Prior art keywords
buffer
descriptor
user space
kernel
space
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
JP2013538754A
Other languages
English (en)
Other versions
JP5726316B2 (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 JP2014501003A publication Critical patent/JP2014501003A/ja
Application granted granted Critical
Publication of JP5726316B2 publication Critical patent/JP5726316B2/ja
Active 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9031Wraparound memory, e.g. overrun or underrun detection
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

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

Abstract

本明細書では、遠隔通信ネットワークにおいてモデムで使用するための、マルチコア・プロセッサにおける、ロックレスな、ゼロ・データ・コピーのメッセージング機構のためのコンピュータ実装システムおよび方法が説明される。本方法は、複数の処理コアごとに、カーネル空間からユーザ空間に(K−U)マッピングされたバッファおよび対応するバッファ記述子を取得するステップと、データ・パケットをバッファに挿入するステップと、バッファ記述子を循環バッファに挿入するステップとを含む。本方法は、K−Uマッピングされたバッファのポインタを含むフレーム記述子を作成するステップと、フレーム記述子を、IPアドレスをフレーム・キューにマッピングする動的なPCDルールによって指定されたフレーム・キューに挿入するステップと、フレーム記述子からバッファ記述子を作成するステップとをさらに含む。

Description

本発明の例示的実施形態は、マルチコア・プロセッサを使用する、単一のモデム・ボードにおけるマルチセル・サポートのための、ゼロ・コピー、ロックレス、およびノンブロッキングのメッセージング・スキームに関する。本発明は、ワイヤレス遠隔通信の分野を特に対象とし、したがってワイヤレス遠隔通信の分野を特に参照して説明するが、本発明は他の分野および用途で有用性を有しうることが理解されよう。
背景として、LTE(ロング・ターム・エボリューション)は、UMTS(ユニバーサル・モバイル・テレコミュニケーション・システム)モバイル電話規格を、将来の通信ネットワーク需要に対処するように改善することを目的とする、急速に進化している3GPPプロジェクトである。LTEは、ワイヤレスネットワーク効率および帯域幅を向上し、コストを削減し、サービス経験を向上させる。特に、LTEは新規のスペクトル機会を利用し、他のオープン・スタンダードとの統合の改良を提供する。LTEは、通常、LTE RAN(無線アクセス・ネットワーク)(E−UTRANとしても知られる)、およびEPS(進化型パケットシステム、進化型パケット・コアとも呼ばれる)を含む。
通信システムは、一般にデータ・プレーン機能とコントロール・プレーン機能との2つの主な機能に分けられる。従来のLTE製品では、モデム・ボードにおいて少なくとも2つのプロセッサが使用されていた。1つはコントロール・プレーン機能(非リアルタイム、たとえば、運用、管理、および保守(すなわちOA&M)、ならびに呼処理管理関連機能)をサポートするためのものであり、もう1つは、データ・プレーン機能(リアルタイム、たとえばLTE層2処理)を終了およびサポートするためのものである。コントロール・プレーンおよびデータ・プレーンの両方は、異なるオペレーティング・システム(OS)インスタンスを使用する。たとえばコントロール・プレーンはLinuxを使用し、データ・プレーン・コアはvXWorks(カリフォルニア州のWind River Systems of Alamedaによって作成および販売される)などのリアルタイムOSを使用する。一般的に、1つのモデム・ボードは1つのセクタまたはセルをサポートする。したがって、マルチセル(たとえば、3つのセルまたは6つのセル)構成をサポートするためには、セルと同数のモデム・ボードを提供することが必要になる。
マルチコア・プロセッサは、モデム・ボード上のLTEワイヤレス基地局で使用されうる。PREEMPT_RTパッチを備えたSMP Linuxなどのオペレーティング・システムは、8つの全てのコアを含んだ1つのSMPパーティションにおいて実行できる。この構成では、コントロール・プレーン(非リアルタイム・スレッド/処理)およびデータ・プレーン(リアルタイム・スレッド/処理)が、たとえ別々のコアにおいて実行しなければならなくても、同じオペレーティング・システム・インスタンスを共有する。データ・プレーン・コアにおいて実行しているLTE L2スケジューラなどの、リアルタイム処理/スレッドからTCP/UDPパケットを送信/受信するためにLinuxプロトコル・スタックを使用すると、LTE L2スケジューラの処理を停止させる可能性がある無限のレイテンシ・スパイクをもたらす場合がある。これは、Linuxプロトコル・スタックがロックレスになるように設計されていないという事実のためであり、またLinuxプロトコル・スタックがOA&M、およびコントロール・プレーン・コアにおいて実行しているCALLPなどの非リアルタイム処理/スレッドによっても使用されるためである。
SMP環境では、あるコア(コントロール・プレーンにおいて見つけられるものなど)上の非リアルタイム処理またはスレッドによって行われるロックは、別のコア(データ・プレーンにおいて見つけられるものなど)においてそのロックの解除を待っているリアルタイム・スレッドまたは処理にレイテンシ・スパイクを生じさせる場合がある。したがって、1つのパーティションを使用するマルチコア・プロセッサベースのモデム・ボードの性能ニーズを満たすために、データ・プレーン・コア上の高速データ・パスにLinuxプロトコル・スタックを使用しない、ロックレス、ゼロ・コピー、ノンブロッキングのメッセージング・スキームが必要である。このようなスキームがないと、システムは、特にLTE L2スケジューラの処理に関して、システム全体を停止させることがある無限のレイテンシ・スパイクを受ける場合がある。
例示的実施形態の一態様では、マルチコア・プロセッサにおける、ロックレスな、ゼロ・データ・コピーのメッセージングのためのコンピュータ実装方法が提供される。本方法は、複数の処理コアごとに、カーネル空間からユーザ空間に(K−U)マッピングされたバッファおよび対応するバッファ記述子を取得するステップと、データ・パケットをバッファに挿入するステップと、バッファ記述子を循環バッファに挿入するステップとを含む。
他の態様では、ユーザ空間処理とカーネル空間処理との間のバッファへのロックレスな、ゼロ・コピーのアクセスを提供するための装置が提供される。本装置は、モデム・ボード、およびモデム・ボードに取り付けられた複数のプロセッサ・コアを含むマルチコア・プロセッサを備える。モデム・ボードは、カーネル空間、ユーザ空間、およびカーネル空間からユーザ空間に(K−U)マッピングされたバッファ記述子を格納するように適合されたプロセッサ・コアごとの循環バッファを含む。
さらに他の態様では、複数の処理コアごとに、バッファ記述子を格納するための循環バッファをコンピュータに取得させる命令を格納する、非一時的コンピュータ使用可能データ・キャリアが提供される。循環バッファに格納されたバッファ記述子は、カーネル空間からユーザ空間に(K−U)マッピングされたバッファについての情報を含む。また、命令は、1つまたは複数のハードウェア・コンポーネントとともに1つまたは複数のカーネル空間スレッドを使用して、コンピュータに、イーサネット・インターフェースでデータ・パケットを受信させて、K−Uマッピングされたバッファおよび対応するポインタを取得させて、受信したデータ・パケットをK−Uマッピングされたバッファに挿入させて、データ・パケットを含むK−Uマッピングされたバッファ・ポインタで構成されるフレーム記述子をフレーム・キューの待ち行列に入れさせて、データ・パケットがフレーム・キューの先頭に到着した後、フレーム記述子からバッファ記述子を作成する処理を起動する割込み信号を生成させる。次いで、データ・パケットに関連付けられるバッファ記述子が、循環バッファ・マッピングへのフレーム・キューの通りに指定の循環バッファに挿入される。
本例示的実施形態の適用性のさらなる範囲は、以下に提供する発明を実施するための形態から明らかになるであろう。しかしながら、本発明の趣旨および範囲内の様々な変更形態および修正形態は当業者には明らかになるので、発明を実施するための形態および特定の例は、本発明の好ましい実施形態を示しているが、例示のために与えられるに過ぎないことが理解されるべきである。
本発明は、本デバイスの様々な部品の構成、配置、および組合せ、ならびに方法のステップにおいて存在し、その検討される目的は、以下により完全に規定され、特許請求の範囲で具体的に指摘され、添付の図面に示される通りに達成される。
本発明の態様による、プラットフォーム・アーキテクチャの一実施形態を示す図である。 図1に示されるコア抽象化層を実装するための例示的アーキテクチャを示す図である。 データ・パケットのイングレス(ingress)・データ・フローを提供するための例示的BED DPAAベースのシステムを示す図である。 着信データ・パケットに関する処理フローの高水準記述を示す図である。 データ・パケットのエグレス(egress)・データ・フローを提供するための例示的BED DPAAベースのシステムを示す図である。 発信(エグレス)データ・パケットに関する処理フローの高水準記述を示す図である。
次に、特許請求の範囲に記載された主題を限定するためではなく、例示的実施形態を示すためだけに図示している図面を参照すると、図1は、本明細書で説明する実施形態を組み込むことができるシステムの図を提供している。
次に図1を参照すると、例示的プラットフォーム・アーキテクチャ100が示されている。このアーキテクチャは、概してモデム・ボードにおいて使用されるが、他の応用で使用されうることが理解されるべきである。この実施形態では、1つのパーティションが8つの全てのコアを有するように定義される。しかし、マルチコア・プロセッサ100は任意の数のコアを有してよいことが理解されるべきである。したがって、この実施形態では、全てのコア(たとえば、8つのコア)を実行する、単一の対称マルチプロセッシング(SMP)オペレーティング・システム(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)ワイヤレス・スタックで使用される。RLC/MACソフトウェアは、移動局と基地局コントローラ(BSC)との間の承認データ転送および未承認データ転送を提供する。したがって、モバイルとネットワークとの間で使用される電波インターフェース上の基本的転送ユニットであるRLC/MACブロック122も含まれる。RLC/MACブロック122はデータおよびRLC/MACシグナリングを搬送するために使用される。
マルチコア・プロセッサ100は、運用、管理、および保守(OA&M)124、ならびに非リアルタイム呼管理関連サービスを提供するCALLPモジュール126も提供する。
さらに、マルチコア・プロセッサ100は、層2(L2)アプリケーション・ソフトウェアからコアの具体的詳細を隠す、コア抽象化層(CAL)128を含む。層2は、コンピュータ・ネットワーキングの7層OSIモデルのデータ・リンク層である。データ・リンク層は、ワイド・エリア・ネットワーク内の隣接ネットワーク・ノード間で、または同じローカル・エリア・ネットワーク・セグメントのノード間で、データを転送するプロトコル層である。データ・リンク層は、ネットワーク・エンティティ間でデータを転送するための機能および手続的手段を提供し、物理層で発生しうるエラーを検出して、可能であれば訂正する手段を提供する可能性がある。データ・リンク・プロトコルの例は、ローカル・エリア・ネットワーク(マルチノード)用のイーサネット、ポイント・ツー・ポイント・プロトコル(PPP)、HDLC、およびポイント・ツー・ポイント(デュアルノード)接続用のADCCPである。この場合、L2は、概して、非常に厳しいリアルタイム要件を有する、LTE電波インターフェースに必要なL2スケジューラ処理を指す。
モバイル通信デバイスとネットワーク・スイッチング・サブシステムとの間のトラフィックおよびシグナリングの処理を担当する、基地局のリアルタイム性能ニーズを満たすために、PREEMPT_RTパッチを備えたSMP LinuxなどのOSが使用されうる。他のオペレーティング・システムが使用されうることが当然理解されるべきである。vxWorksを利用するためには非常に高いライセンシング料がかかるので、vxWorksなどのハード・コア・リアルタイムOSよりも、Preempt_RTを備えたSMP Linuxなどのオープン・ソースOSが選択される。このようなSMP構成における決定的動作を実現するために、システムは、コア予約およびコア親和性構造を使用する方法で実装されて、AMPのようなシステム動作を実現することが好ましい。これは、たとえばPREEMPT_RT OSを備えたSMP Linuxから最高の性能を得るためにも望ましい。バッファ管理などのロックレスなゼロ・コピーのサービス、およびメッセージングのサービスの使用は、PREEMPT_RT OSを備えたSMP Linuxの使用によってもたらされる可能性のある任意のレイテンシ問題に対処するのにも役立つ場合がある。
図1に示されるコア抽象化層(128)の主な機能の1つは、マルチコア・プラットフォームの全機能を利用する様々なサービスを有する、L2処理などの高水準のアプリケーションを提供することである。したがって、コア抽象化層はいくつかの目的を達成するように設計される。第1に、コア抽象化層は、DPAAおよびマルチコアの特定の実装形態をより高い水準のアプリケーション・ソフトウェア(すなわち、L2ソフトウェア)から隠しながら、BED(バックプレーン・イーサネット・ドライバ)DPAAベースのインターフェースをサポートしなければならない。第2に、ユーザ・プレーン・データに、イングレス方向およびエグレス方向の両方の高速データ・パスを提供するために、P4080のDPAAハードウェア・コンポーネントを利用しなければならない。第3に、構成変更に容易に適合できるように(すなわち、コード変更せずに)、できる限りの柔軟性を提供しなければならない。CAL構成の例は、バッファ・プール、イングレス・フレーム・キュー、およびエグレス・フレーム・キューのDPAAリソース構成である。
要約すると、本発明の実装形態は、1つのパーティションに全てのプロセッサ・コアを使用する。これは、OSインスタンスを1つだけ使用する必要があり、ハイパーバイザを使用する必要はない。単純なLinuxが全てのハード・リアルタイム処理ニーズを満たすのは困難な場合があるので、PREEMPT_RTパッチを備えたSMP LinuxなどのOSが好ましい。コスト削減のために、オープン・ソースOSも使用される。システムは、6つのセル構成、または9つのセル構成も可能にする、SMP構成内のAMPのようなシステム動作を定義するために、SMP Linuxのコア親和性およびCPU予約機能をさらに組み込む。OSインスタンスが非リアルタイム・コア(コントロール・プレーンなど)とリアルタイム・コア(データ・プレーンなど)との間で共有されるので、非リアルタイム・スレッド/処理によってロックが行われると問題が生じ、リアルタイム・スレッド/処理はデータ・プレーン・コアのロックの解除を待たなければならないので、リアルタイム・スレッド/処理に遅延が生じる。標準的なLinuxプロトコル・スタックはロックレスな実装形態を保証しないので、本発明は、プロトコル・スタックの使用を回避しながらTCP/UDP IPパケットを送信/受信するために、データ・プレーン・コアにおいて実行しているリアルタイム処理(LTE L2スケジューラ)のためのロックレスなメッセージング・スキームを定義する。コントロール・プレーン・コアにおいて実行しているOA&Mなどの非リアルタイム処理は、通常の動作にLinuxプロトコル・スタックの使用を継続する。Linux GPL問題のため、我々が開発したLTE L2スケジューラはユーザ空間で操作される。したがって、LTE L2スケジューラからTCP/UDP IPデータを送受信するために、データは概してデータ・コピーが必要なユーザ空間とカーネル空間との境界を横切らなければならない。したがって、あるメモリ位置から別のメモリ位置にデータをコピーするためにプロセッサの電力を消費することによって、貴重なリソースを浪費してしまう。したがって、コントロール・プレーンが通常の方法で(たとえば、従来のLinuxプロトコル・スタックを使用することによって)動作できるようにしながら、データ・プレーン・コアにおいて実行しているリアルタイム・スレッド/処理のために、効率的なロックレス、ゼロ・コピー、およびノンブロッキング・メッセージング・サービスを可能にする方法およびシステムを提供することが望ましい。
次に図2を参照すると、これらおよび他の目的を達成する例示的アーキテクチャ200が示されている。通常、従来のコンピュータ・オペレーティング・システムは、仮想メモリをカーネル空間とユーザ空間とに分離することが知られている。カーネル空間は、カーネル、カーネル拡張、およびほとんどのデバイス・ドライバを実行するために厳密に確保されている。一方、ユーザ空間は、全てのユーザ・モード・アプリケーションが作業するメモリ領域であり、このメモリは必要に応じてスワップ・アウトされうる。この点で、コア抽象化層(CAL)201は、これに限定されないが、LTEネットワーク構成および任意の静的PCDルールをフレーム・マネージャ(FMAN)230および232にロードして、構成ファイルのセットに基づいてCALフレームワークをセットアップする、コア抽象化層初期化(CALInit)モジュール202と、コア抽象化層バッファ(CALBuf)・モジュール204と、L2ソフトウェアにメッセージング・サービスを提供して、Linuxプロトコル・スタックを使用せずに他のボード(すなわち、eCCM)へ、またはそこからユーザ・プレーン・データを送受信する、コア抽象化層メッセージング(CALMsg)・モジュール206と、イングレス・フレームを適切なコアに経路指定するために、各FMAN(230、232)によって使用されるべき構文解析、分類、および分散(PCD)ルールおよび構成を提供する、コア抽象化層構文解析、分類、および分散(CALPcdFmc)モジュール208と、カーネル空間モジュールである、コア抽象化層DPAAドライバ(CALDPAADriver)212内のトレースを可能および不可能にするためのトレーシング機能を提供する、コア抽象化層DPAAトレース(CALDpaaTrace)・モジュール210とを含む、様々なモジュールをユーザ空間内に含む。
アーキテクチャ200は、Preempt RTパッチを備えたSMP Linuxなどの適切なオペレーティング・システム214をさらに含む。次に、オペレーティング・システム214は、前述のCALDPAAドライバ212、少なくとも1つのフレーム・マネージャ(FMAN)・ドライバ216、少なくとも1つのバッファ・マネージャ(BMAN)・ドライバ218、および少なくとも1つのキュー・マネージャ(QMAN)・ドライバ220などの、様々なドライバをサポートする。
図2に示されるように、アーキテクチャ200は、スケーラブル・オンチップ・ネットワークが、複数の電力アーキテクチャ処理コアとキャッシュ、スタンドアロン・キャッシュ、およびメモリ・サブシステムとを接続するために適した相互接続アーキテクチャである、P4080のCoreNetファブリック222を適切に含みうる。
P4080プロセッサは、新規のデータ・パス加速アーキテクチャ(DPAA)の実装形態を含む。したがって、アーキテクチャ200はP4080のDPAA224をさらに含みうる。DPAA224は、ネットワーク・インターフェースおよびハードウェア・アクセラレータを含む、負荷の分散およびリソースの共有などのマルチコア・ネットワーク処理を最適化するように設計されている。図示されるように、DPAA224は、概してBMAN226、QMAN228、ならびに第1のFMAN230および第2のFMAN232などの様々なマネージャをそれぞれ含む。
CALInitモジュール202は、概してLTEネットワーク構成および任意の静的PCDルールをフレーム・マネージャ230および232にロードして、構成ファイルのセットに基づいてCALフレームワークをセットアップする。CALInitモジュール202は、FMC(FMan構成ツール)(図示せず)または任意の数のFMan API(図示せず)とインターフェースしてFMan PCDを構成し、CALDPAAドライバ212とインターフェースしてCAL構成(たとえば、ユーザ・プレーンDPAリソース)をロードおよびセットアップする。
CALPcdFmcモジュール208は、イングレス・フレームを適切なコアに経路指定するために、各FMan(230、232)によって使用されるべき構文解析、分類、および分散(PCD)ルールおよび構成を提供する。
CALInitモジュール202は様々な機能の提供を担当する。CALInitモジュール202は、マスター・コアの起動時にCALフレームワークをセットアップして「高速パス」処理をサポートする。このステップは、CALDPAAドライバ212を初期化するステップを含むことができ、次にCALDPAAドライバ212は、(a)ユーザ・プレーン・データ(たとえば、バッファ・プール、FQ(すなわちフレーム・キュー))を処理するために必要な様々なDPAAリソースを作成し、(b)DPAA(たとえば、バッファ・プール構成、FQ、およびイングレスFQとDLスケジューラIPアドレスとの間の関連を維持する内部テーブル等)を介してバッファ管理およびメッセージング・サービスをサポートするために必要なCALインフラストラクチャを作成する。CALInitモジュール202は、LTE FMCの(静的)PCDルールおよびネットワーク構成もロードする。
ワイヤレス・マルチプル・アクセス通信システムでは、送信機および受信機は多層通信スタックを使用して通信できることが知られている。この層は、たとえば、物理層、メディア・アクセス制御(MAC)層、無線リンク制御(RLC)層、プロトコル層(たとえば、パケット・データ収束プロトコル(PDCP)層)、アプリケーション層等を含みうる。RLC層は、PDCP層からサービス・データ・ユニット(SDU)を受信して、MAC層に送信するためにSDUをRLCプロトコル・データ・ユニット(PDU)に連結または分離する。
したがって、CALBufモジュール204は、L2アプリケーションをRLC SDU処理において使用するために、ロックレス・バッファ管理サービスを容易にする。当技術分野では知られているように、ノンブロッキング・アルゴリズムは、共有リソースを競合するスレッドが、相互排除によってそれらの実行を無期限に延期しないことを保証する。ノンブロッキング・アルゴリズムは、システム全体の向上が保証される場合、ロックレスである(すなわちロックがない)。CALBufモジュール204は、バッファ・プール統計データ(たとえば、プール空乏状態、空乏カウント、プール可用性状態、プール割当て誤り件数等)の問合せもサポートする。CALBufモジュール204は、サービスを実装するためにCALDPAAドライバ212とインターフェースする。CALBufモジュール204は、マルチコア環境における適切なシステム・オペレーションにとって非常に重要な、ロックレスなバッファ管理スキームを提供し、非リアルタイム処理によって行われるロックは、そのロックの解除を待っているリアルタイム処理にレイテンシ問題を生じさせる場合がある。
CALDPAAドライバ212はCAL201のカーネル空間コンポーネントであり、BMANおよびQMAN APIを使用して、バッファ管理サービスおよびメッセージング・サービスの実装および提供を助ける。本明細書で使用されるように、API(すなわち、アプリケーション・プログラミング・インターフェース)という用語は、ソフトウェア・プログラムによって実装されたインターフェースを指し、他のソフトウェアとの対話を可能にする。APIは、ユーザ・インターフェースがユーザとコンピュータとの間の対話を容易にするのと同様の方法で、別のソフトウェア・プログラム間の対話を容易にする。APIは、ボキャブラリおよび呼出規約を決定するためにアプリケーション、ライブラリ、およびオペレーティング・システムによって実装されて、それらのサービスにアクセスするために使用される。APIは、消費者とAPIの実装者との間で通信するために使用されるルーチン、データ構造、オブジェクト・クラス、およびプロトコルについての仕様を含みうる。
CALDPAAドライバ212は、ユーザ・プレーン・データ分散のために使用されるべきDPAAリソース(バッファ・プールおよびフレーム・キュー)の管理、初期化、バッファ管理、およびメッセージング・サービスのためのオープン、解除、io制御(ioctl)などの様々なファイル操作を介する他のCALモジュールへのユーザ空間インターフェースの提供、カーネル空間からユーザ空間への(K−U)バッファ・マッピングの実行、DPAAバッファ・プールおよび受信機と送信機の統計データの提供、ならびにリング・バッファを管理するためのサービスの実装を担当する。リング・バッファは、CALのL2ソフトウェア・キューを表し、概して特定のL2のDLT宛てのFDを格納するために使用される点に留意されたい。CALMsgモジュール206は、リングからバッファ記述子を取り出すために、L2にAPIを提供する。
上述の全てのCALコンポーネントは、CALDPAAドライバ212以外は、概してプラットフォーム・ミドルウェア(ユーザ空間で実行している)である。CALDPAAドライバ212は、カーネル空間内で実行するカスタム・ドライバであり、CALユーザ空間ミドルウェアによって必要とされるサービス、特に、P4080のDPAAハードウェア・コンポーネントに依存するサービスを実装および提供するように設計されている。
CALBufモジュール204は、「高速パス」データ処理のためだけに使用されるべきバッファ管理サービスを提供する。CALBufモジュール204は、ユーザ空間APIをL2アプリケーションに提供する。CALBufモジュール204は、CALDpaaドライバ212と協働して、CALDpaaドライバ212が作成するがBMAN226によって管理されるバッファに、ゼロ・コピーでロックレスなバッファ管理サービスを提供する。
CALMsgモジュール206は、(イングレス)RLC SDUを受信して、DPAAを介して(エグレス)RLC SDUを送信するためのサービスを提供する。CALMsgモジュール206は、Tx/Rxイーサネット・インターフェース統計データ(たとえば、受信または送信されるFDの数、ドロップしたFDの数、様々なタイプの不良FD等)についての問合せもサポートする。CALMsgモジュール206は、サービスを実装するためにCALDPAAドライバ212とインターフェースする。CALMsgモジュール206は、プロトコル・スタックを使用せずにTCP/UDP IPパケットを送受信するために、ゼロ・コピーでロックレスなメッセージング・サービスをLTE L2アプリケーションに提供する。これにより、アプリケーション・ソフトウェアが、非常に厳密なリアルタイム処理要件を有するLTEシステムの適切なシステム動作を停止させる可能性がある無限のレイテンシ・スパイクに直面しないことが保証される。
CALMsgモジュール206は、他のボード(すなわち、eCCM)に、またはそこからユーザ・プレーン・データを送受信するためにメッセージング・サービスをL2ソフトウェアに提供する。CALMsgモジュール206は、DPAAを介してロックレスなゼロ・コピーのメッセージング・サービスを提供するために、概してCALDPAAドライバ212とインターフェースする。この特徴により、L2アプリケーション・ソフトウェアは、無限のレイテンシ遅延を回避するためにプロトコル・スタックを使用せずにTCP/UDP IPパケットを送受信できるようになる。
CALMsgモジュール206は、以下のパラグラフで説明するサービスなどの、様々なサービスをサポートするAPIを実装および提供する。
ある可能なサービスは、CALMsgサービスを備えた(L2)アプリケーション・エンティティの登録であり、それによってエンティティは「高速パス」を介して着信パケットを受信できるようになる。この登録処理の間、エンティティ宛ての受信したバッファ記述子を維持するために、CALのL2ソフトウェア・キュー(すなわち、バッファ記述子のリング、すなわち言い換えれば、バッファ記述子の循環バッファ)が作成される。また、この登録の間、CALMsgモジュール206は、他の処理(たとえば、フレームがFQに到着したときに、バッファ記述子のどの輪がバッファ記述子をプッシュするべきかを決定する)、において後で参照するためのIPアドレスへのイングレスFQとバッファ記述子IDのリングとの間の関連を作成する。また、CALMsgモジュール206は、カーネル空間からユーザ空間への、バッファ記述子の関連するリングのマッピングも実行し、アプリケーション・エンティティについてのPCDルールを構成する(静的ルールを介してまだ行われていない場合)。さらに、登録処理の最初に、CAL201は、スレッドがクラッシュすると、アプリケーションによって取得された全てのバッファが適切に解除されることを保証するための防衛戦略を実装する。
CALMsgモジュール206によって提供される第2のサービスは、アプリケーション・エンティティ宛てのフレームを取り出すことである。返されたバッファ・アドレスは、イーサネット・ヘッダで始まるペイロードの先頭を指す。
CALMsgモジュール206によって提供される第3のサービスは、ユーザ・プレーン・データ(たとえば、eth0)を処理するために構成されたイーサネット・インターフェース上のDPAAを介して外部エンティティにメッセージを送信することである。L2は、必要な全てのヘッダ(イーサネット、IP、UDP)をポピュレートすることが予期され、ハードウェアはIPチェックサムおよびUDPチェックサムを生成してポピュレートするように適切に構成される。
第4のサービスは、受信機および送信機ポートに統計データを問い合わせることである。
第5のサービスは、CALMsgモジュール206からアプリケーション・エンティティを登録解除することである。一旦アプリケーション・エンティティが登録解除されると、「高速パス」を介してパケットを受信できなくなる。登録解除処理の一部として、CALは、アプリケーション・ソフトウェアによって取得された全てのバッファを解除する。高速パスを介してフレームを受信するためにCALMsgモジュール206が使用される場合、バッファ記述子の関連するリングおよびPCDルールも除去されることになる。
図3を参照すると、データ・パケットのイングレス・データ・フローを提供するように適合される、例示的なバックプレーン・イーサネット・ドライバ(BED)DPAベースのシステム300の高水準の概要が示されている。図3の左側は、従来のプロトコル・スタックを使用してコントロール・プレーン・コアXに向かうことになっているパケットによって取られるパスを示している。図の右手側は、LTE L2スケジューラが実行しているデータ・プレーン・コアYのパケット・トラバーサルを示している。
例示のために、LTE L2スケジューラは2つのリアルタイム・スレッドで構成されている。2つのスレッドは、イングレス・パケット・フローのために作動し始める、図3にDL SCHEDULER324として示されるDLスケジューラと、エグレス・パケット・フローのために作動し始める、UL SCHEDULERとして示されるアップリンク・スケジューラとを含む
ハードウェアの観点から、それぞれのコアはソフトウェア・ポータル316を有する。それぞれのポータルは指定された数のチャネルを有する。それぞれのチャネルは、複数のフレーム・キュー(FQ)で構成される、8つのプライオリティ・ベースのワーク・キュー(WQ)を有する。
FMAN302が高水準でデータ・パケット304を受信すると、適切なサイズのカーネル空間からユーザ空間にマッピングされたバッファをBMAN226から取得して、受信したパケットをバッファにコピーし、FMAN302は、どのイングレスFQ306をパケットの待ち行列に入れるかを決定して(PCDルールの通りに)、データ・パケット304を適切なFQ306上の待ち行列に入れるためにQMAN API308を使用する。データ・パケット304がハードウェア・レジスタDQRR328に進むと、指定されたコア(コアY312など)にポータル割込みが生成される。言い換えると、QMANが様々なチャネルの全てのFQを処理する。WQはサービス品質(QoS)を実装するためにある。それぞれの到着パケットが、FQ上の待ち行列に入れられると、QMAN内の内部ハードウェア待ち行列を通過する。キューの先頭に辿り着き、処理の準備ができているFQは、QMANによってDQRRレジスタに入れられる。DQRRレジスタは15エントリの深度を有する。それぞれのエントリ(パケット・バッファへのポインタ、関連するコールバック機能などの、FQについての情報を含むフレーム・キュー記述子)は、割込みサービスルーチン(ISR)において登録されたコールバック機能330によって供給され、QMAN308は次のFQ記述子を自動的にDQRR上の待ち行列に入れる。
次いで、FQ306のCAL DPAドライバ314の一部である、登録されたコールバック機能「Uプレーン・ディスパッチャ」330が、カーネル空間で実行して、適切なパケット処理を実行する。DLスケジューラのインスタンスごとに、バッファ記述子320のリングはリングIDを有する。バッファ記述子320のリングもカーネル空間からユーザ空間に(K−U)マッピングされて、ユーザ空間(CALMSG326など)およびCAL128のカーネル空間(CAL DPAドライバ314など)コンポーネントが、アドレス指定問題なしに、およびデータ・コピーをする必要もなしに、アクセスできるようにする。セル初期化の間、CALMSG326は、CALMSG326に登録するために、ユーザ・アプリケーションDLスケジューラ324にサービスを提供する。その時点で、イングレスFQ306とリングID320との間のマッピング関係も作成された。コールバック機能330は、どのリングID320にこの特定のフレーム・キュー記述子が属するかを決定して、特定のデータ・プレーン・コアY312上の関連するユーザ空間DLスケジューラ・スレッド324によって後に処理するために、カーネル空間からユーザ空間にマッピングされたバッファ・ポインタを(任意のブックキーピング情報とともに)コピーして、適切なバッファ記述子をバッファ記述子320のカーネル空間からユーザ空間にマッピングされたリング上の待ち行列に入れることによって、バッファ記述子を作成する。
DLスケジューラ処理324は、ユーザ空間内でエンドレスな「Run to Completion」モードで実行する。リアルタイム・スレッドは、バッファ記述子320のリングにおいて消費するために待ち行列に入れられたパケットがある場合、全てのDelta T時間をウェークアップし、問い合わせるためにCALMSG326 APIを呼び出す。バッファ記述子320のリングにおいて消費するために待ち行列に入れられたパケットがある場合、DLスケジューラ324はリング320上のパケットを処理する(または消費する)。受信したパケットは標準的なプロトコル・スタックを通過していないので、パケット・ヘッダ(TCP/UDP/IP/イーサネット)全体を含んでいる。DLスケジューラ324は、パケット・ヘッダを無視して、パケット・ペイロードにおいて動作する。動作が行われると、CALBUF204 APIを使用してバッファを解除する。一旦DLスケジューラ324が処理するべきパケットがなくなると、DLスケジューラ・スレッド324はスリープに戻る。バッファ記述子320のリングごとに、1つの生産者(CAL DPADriver314)と1つの消費者(特定のDLスケジューラ・スレッド324)しかないので、このスキームは、どのようなソフトウェア・ロックも必要としない原子動作で実装されうる。さらなる利点は、バッファ記述子320のリングなどのバッファ記述子のリングとともに、カーネル空間からユーザ空間にマッピングされたバッファを使用することによって達成される。カーネル空間からユーザ空間にマッピングされたバッファの使用により、パケットはカーネル空間デバイス・ドライバからユーザ空間内の最終的な宛先へとトラバースするようになるので、データ・コピーが不要になる。
例示的実施形態では、コントロール・プレーン・トラフィックおよびデータ・プレーン・トラフィックは互いから分離されており、別々のイーサネット・インターフェースに向けられている。FMAN302は複数のイーサネット・インターフェースをサポートしうる。Linuxプロトコル・スタックは、コントロール・プレーン・コアX332において実行することになっている。CAL PCDモジュールは、FMAN302が、コントロール・プレーン・イーサネット・インターフェースに到着する全てのパケット304を、カーネル空間で実行するFSL DPAドライバ336によって処理されるフレーム・キュー(FQ)334の待ち行列に入れられるようにする静的PCDルールをセットアップする。このドライバ336は、パケットをLinuxプロトコル・スタック338に引き渡す。パケットがカーネル空間とユーザ空間との境界を横切る際に、データ・コピーも含まれる。これは、図3の左側に示されている。
データ・プレーン・コアの着信データ・パケットに関する処理フローの高水準な図が図4に示されている。図4の方法は、図3に示した装置によって実装されうる。
ステップ410で、DLスケジューラ320は自身をCALMSG326に登録する。また、システムは、カーネル空間からユーザ空間に(K−U)マッピングされたバッファ記述子320のリングを作成して、カーネル空間エンティティ(CALDPAAドライバ314など)と、ユーザ空間エンティティ(CALMSG326など)との両方がリングにアクセスできるようにする。このステップは、モデム・ボード上の構成されたセルごとに、CALDPAAドライバ・モジュール314とともにCALMSG326によって実行されうる。したがって、3つのセルがモデム・ボードにおいてサポートされている場合、バッファ記述子320の3つの異なるリングがあり(それぞれのセルに1つ)、CALDPAAドライバ314はイングレスFQ306とバッファ記述子320の特定のリングとの間にマッピングを有する。例示的実施形態では、DL SCHEDULERインスタンス324ごとにバッファ記述子320の1つのリングがある。バッファ記述子のリングは、読出しポインタと書込みポインタとを有する。1つの生産者(たとえば、カーネル空間内のCALDPAAドライバ314のuプレーン・ディスパッチャ330など)と1つの消費者(ユーザ空間内の特定のDLスケジューラ324など)しかないので、バッファ記述子320のリングは、原子動作を使用してロックレスな方法で実装される。
ステップ420で、専用データ・プレーン・イーサネット・インターフェースがデータ・パケット304を受信する。
ステップ430で、FMAN302がカーネル空間からユーザ空間にマッピングされたバッファ/トークンをBMAN(図2、226)から取得する。
ステップ440で、FMAN302が、受信したデータ・パケット304を取得したバッファに挿入する。
ステップ450で、セル初期化(IPアドレスとイングレスFQ306との間にマッピングを提供する)の間にCALモジュール(CALMSG206)によってセットアップされた動的なPCDルールごとに、FMAN302は、QMAN308の助けを借りて、パケットを適切なFQ306において待ち行列に入れる。
ステップ460で、パケットがハードウェアDQRRレジスタ328に進むと、システムは、P4080マルチコア・プロセッサを介して、コアY312(データ・プレーン・コア)用のソフトウェア・ポータル316への割込みを生成する。特定のFQについて登録されたコールバック機能(この場合は、uプレーン・ディスパッチャ330)は、カーネル空間内でISRルーチンとして実行してパケットを処理する。基本的に、コールバック機能は、処理されているDQRRエントリのフレーム・キュー記述子(FD)内に含まれる情報からバッファ記述子を作成する。FDからのバッファ・ポインタが、いくつかのさらなるブックキーピング情報とともにバッファ記述子にコピーされる。
ステップ470で、CALDPAAドライバ314は、ステップ460から生成されたバッファ記述子を、コアY312に関連付けられるバッファ記述子320のリングの待ち行列に入れる。
ステップ410〜470は、CALDPAAドライバ314(たとえば、uプレーン・ディスパッチャ330)のカーネル・スレッドとともに、ハードウェア(FMANおよびQMAN)によって実行される。例示的実施形態では、ステップ480〜495は、ステップ410〜470で実行された処理またはスレッドとは無関係の処理またはスレッドにおいて実行される。このように、ステップ480〜495は、データ・プレーン・コアY312上のDLスケジューラ324などのユーザ空間スレッドによって実行される。
ステップ410〜470と同時に、DLスケジューラ324は完了モードへエンドレス・ランで実行し、TTI(Time-To-lnterrupt)間隔でウェークアップする。ステップ480で、一旦アウェイクすると、DLスケジューラ324は、消費のためのバッファ記述子320のリング上に何らかの未処理のパケットがあるかどうかを問い合わせるために、CALMSG API326を呼び出す。バッファ記述子320のリング上に未処理のデータ・パケットがない場合、DL SCHEDULER324は、CALMSGモジュール326から、未処理のパケットがないことを示すノンブロッキング応答を受信する。次いで、DLスケジューラ・スレッド324は次のTTIまでスリープに入る。
ステップ485で、未処理のデータ・パケットがあるとDLスケジューラ324が決定する場合、方法はステップ490に進み、そうではない場合、方法は495に進む。
ステップ490で、DLスケジューラ324は、バッファ記述子320のリング上の次のデータ・パケットを処理する。次のパケットは、リングの読出しポインタによって示される。データ・パケットが処理された後、DLスケジューラ324は、CALBUF204のAPIを使用してK−Uマッピングされたバッファを解除する。例示的実施形態では、処理されるべきデータ・パケットは、1つまたは複数のヘッダとペイロードとの両方を含む。DLスケジューラ324はヘッダを無視して、ペイロードにおいて動作する。ヘッダはパケットを宛先に経路指定するために使用され、例示的実施形態ではプロトコル・スタックを使用せずに達成される。一旦DL SCHEDULER324が全てのパケットを処理すると、方法はステップ495に進んで、DL SCHEDULERはスリープ状態に入る。
例示的実施形態は、3つのセルをサポートする(最大6つのセルまで拡張できる)。それぞれのセルは、自身の専用データ・プレーン・コアにおいて実行することになっている、自身のDLスケジューラ(DL SCHEDULERスレッド324)を有する。したがって、例示的実施形態では、3つの異なるデータ・プレーン・コアにおいて実行している、最小限の3つのDL SCHEDULER(図1、116、118、および120)スレッドがある。同様に、それぞれのセルはUL L2スケジューラ(UL SCHEDULER)を必要とする。したがって、3つの異なるデータ・プレーン・コアにおいて実行している、3つのUL SCHEDULERスレッド(図1、110、112、および114)がある。
セルのセットアップの間、動的なPDCルール(すなわち、IPアドレスのイングレスFQへのマッピング)がCALMSGモジュール326によってセットアップされる。CALMSGモジュール326は、イングレスFQをバッファ記述子IDのリングにマッピングすることなどのブックキーピング機能も実行できる。PCDルールによって、FMANはそれぞれのパケットのIPアドレスを検査して、パケットをどのFQの待ち行列に入れるべきかを決定できるようになる。さらなるブックキーピング情報(バッファ記述子320のリングへのイングレスFQ306のIDマッピングなど)によって、uプレーン・ディスパッチャ・カーネル・スレッド330は、着信データ・パケットに関連付けられる所与のバッファ記述子をどのバッファ記述子320のリングに入れるべきかを決定できるようになる。したがって、イングレス・パケットが、従来のプロトコル・スタックを使用せずにデータ・プレーン・コアY312において実行しているDLスケジューラ・スレッド324に到達できる、ロックレスな、ゼロ・コピーのメッセージング・スキームが達成される。
図5を参照すると、データ・パケットのエグレス・データ・フローを提供するように適合される、例示的なバックプレーン・イーサネット・ドライバ(BED)DPAベースのシステム500の高水準の概要が示されている。例示的実施形態500は、エグレス・データ・プレーン・トラフィックを送信するためにLinuxプロトコル・スタックを使用しないソリューションを提供する。図5の左側は、従来のプロトコル・スタック538を使用してコントロール・プレーン・コアX532から送信されたパケットによって取られるパスを示している。コントロール・プレーン・コアx532において実行しているOA&M124などの非リアルタイムユーザ空間アプリケーションが、プロトコル・スタック538を使用してTCP/UDP IPパケットを送信する。プロトコル・スタック538は、パケットをカーネル空間内のFSL DPAドライバ536に転送する。パケットをユーザ空間内のコアx532からカーネル空間内のFSL DPAドライバ536に転送する処理は、データ・コピーを必要とする。FSL DPAドライバ536は、QMAN508の助けを借りてFMAN506によって最終的に供給されるFQ534上の待ち行列にパケットを入れて、パケットはイーサネット・インターフェースにおいて送信される。図面の右手側は、プロトコル・スタック538を使用せずにLTE L2 ULスケジューラ502が実行しているデータ・プレーン・コアY512から出ているパケットについてのパケット・トラバーサルを示している。したがって、エグレス・データ・フローも、無限のレイテンシ・スパイクを招かないロックレスなゼロ・コピーのメッセージング・スキームを使用する。
発信データ・パケット(すなわち、データ・プレーン・コアのエグレス・データ・フロー)に関する処理フローの高水準な図が図6に示されている。図6の方法は、図5に示した装置によって実装されうる。
ステップ610で、ULスケジューラ502が、カーネル空間からユーザ空間にマッピングされたバッファをCALBUF522から取得する。
ステップ620で、ULスケジューラ502がTCP/UDP IPパケットを送信する準備ができると、ULスケジューラ502はパケット全体(ヘッダおよびペイロードを備える)を用意して、CALMSG API522を呼び出す。
ステップ630で、CALMSG522が、CALDPAAドライバ524の助けを借りて、用意したパケットを、データ・プレーン・イーサネット・インターフェースに関連付けられるチャネルCHBの適切なエグレスFQ504の待ち行列に入れる。この待ち行列化は、プロトコル・スタックを使用しないで実行され、無限のレイテンシ・スパイクを回避するために、代わりにロックレスなゼロ・メッセージング・スキームに依存する。
任意のステップ640で、QMAN508は、待ち行列動作が成功したかどうかの状況を決定し、この応答は、ユーザ・アプリケーションULスケジューラ502がその状況の受信を所望する場合、ユーザ・アプリケーションULスケジューラ502にまで遡って返信される。
ステップ650で、FMAN506は、QMAN508の助けを借りて、様々なFQ504からの全てのパケットを処理する。たとえ、パケットがユーザ空間とカーネル空間との境界をトラバースするたびに関連するコンテキスト切替えがあっても、関連するデータ・コピーはない。したがって、FMAN506によるパケットの処理はハードウェアで効率的な方法で実行されるので、それぞれの個々のコアにパフォーマンス上のペナルティは無視できるか、または全くない。それぞれのULスケジューラ302は、パケットをイーサネット・インターフェースにおいて送信するための専用FQ504を目標チャネル(CH B526)上に有する。1つの生産者(ユーザ空間内の特定のUL SCHEDULERスレッド502インスタンス)、およびハードウェア内のFMAN506によって消費される1つの専用エグレスFQ504もある。
ステップ660で、一旦パケットが送信されると、FMAN506はバッファを解除してBMAN(図2、226)に戻す。
当業者は、上述の様々な方法のステップが、プログラムされたコンピュータで実行されうることを容易に理解できるであろう。本明細書では、いくつかの実施形態は、たとえば、デジタル・データ・ストレージ媒体などのプログラム・ストレージ・デバイスをカバーすることも企図され、それらは機械またはコンピュータ可読であり、および命令の機械実行可能またはコンピュータ実行可能プログラムを符号化し、前記命令は前記上述の方法のステップのうちのいくつかまたは全てを実行する。プログラム・ストレージ・デバイスは、たとえば、デジタル・メモリ、磁気ディスクおよび磁気テープなどの磁気ストレージ媒体、ハード・ドライブ、または光学的に読取り可能なデジタル・データ・ストレージ媒体でもよい。本実施形態は、上述の方法の前記ステップを実行するようにプログラムされたコンピュータをカバーすることも企図される。
上記の記述は、本発明の特定の実施形態の開示を単に提供するに過ぎず、本発明をそれに限定することを意図するものではない。したがって、本発明は上述の実施形態だけに限定されない。むしろ、当業者は本発明の範囲内の代替実施形態を想起することが理解される。

Claims (10)

  1. コンピュータ実装方法であって、複数の処理コアごとに、
    カーネル空間からユーザ空間に(K−U)マッピングされたバッファおよび対応するバッファ記述子を取得するステップと、
    データ・パケットを前記バッファに挿入するステップと、
    前記バッファ記述子を循環バッファに挿入するステップと
    を含む、方法。
  2. 前記K−Uマッピングされたバッファのポインタを含むフレーム記述子を作成するステップと、
    前記フレーム記述子を、IPアドレスをフレーム・キューにマッピングする動的なPCDルールによって指定されたフレーム・キューに挿入するステップと、
    前記フレーム記述子からバッファ記述子を作成するステップと
    をさらに含む、請求項1に記載の方法。
  3. 前記データ・パケットがTCPまたはUDPパケットである、請求項1に記載の方法。
  4. 前記循環バッファは、ユーザ空間内で実行している処理が、前記カーネル内で実行している処理によって作成または処理されたバッファへのロックレスな、ゼロ・コピーのアクセスをすることを可能にする、K−Uマッピングされたバッファ記述子のリングであり、
    前記循環バッファは、ユーザ空間内で実行している前記処理が、プロトコル・スタックを使用せずに前記データ・パケットを処理することを可能にする、
    請求項3に記載の方法。
  5. K−Uマッピングされたバッファの前記取得、前記データ・パケットの前記バッファへの挿入、および前記バッファ記述子の前記循環バッファへの前記挿入が、ハードウェア・コンポーネントとともに1つまたは複数のカーネル・スレッドによって実行され、前記方法が、
    定期的な間隔でウェークアップするユーザ空間スレッドを実行するステップをさらに含み、
    前記ユーザ空間スレッドは、ウェークアップすると、前記循環バッファ内に何らかの未処理のバッファ記述子があるかどうかを決定するために前記循環バッファに問い合わせ、
    前記循環バッファ内に未処理のバッファ記述子があることを決定すると、同じまたは異なるユーザ空間スレッドを使用して前記バッファ内の前記データ・パケットを処理する、
    請求項1に記載の方法。
  6. ユーザ空間処理とカーネル空間処理との間のバッファへのロックレスな、ゼロ・コピーのアクセスを提供するための装置であって、
    モデム・ボードと、
    前記モデム・ボードに取り付けられた複数のプロセッサ・コアを含むマルチコア・プロセッサであって、前記モデム・ボードがカーネル空間とユーザ空間とを含む、マルチコア・プロセッサと、
    カーネル空間からユーザ空間に(K−U)マッピングされたバッファ記述子を格納するように適合されたプロセッサ・コアごとの循環バッファと
    を備える、装置。
  7. 前記カーネル空間が、前記カーネル、カーネル拡張、およびデバイス・ドライバを実行するために確保され、
    前記ユーザ空間が、ユーザ・モード・アプリケーションが実行されるメモリ領域である、請求項6に記載の装置。
  8. データ・パケットを受信するためのイーサネット・インターフェースと、
    カーネル空間からユーザ空間に(K−U)マッピングされたバッファ、および対応するバッファ記述子を取得するためのバッファ・マネージャと、
    受信したデータ・パケットを前記K−Uマッピングされたバッファに挿入して、
    前記対応するバッファ記述子を前記循環バッファの待ち行列に入れる
    ように適合されたフレーム・マネージャと
    をさらに備える、請求項6に記載の装置。
  9. 前記データ・パケットがTCPまたはUDPパケットである、請求項8に記載の装置。
  10. 定期的な間隔でウェークアップするように適合されたユーザ空間スレッドをさらに備え、
    ウェークアップすると、前記ユーザ・スレッドが、
    前記循環バッファ内に何らかの未処理のバッファ記述子があるかどうかを決定するために前記循環バッファに問い合わせ、
    前記循環バッファ内に未処理のバッファ記述子があることを決定すると、同じまたは異なるユーザ空間スレッドを使用して前記バッファ内の前記データ・パケットを処理する
    ように適合される、
    請求項8に記載の装置。
JP2013538754A 2010-11-12 2011-10-19 遠隔通信ネットワーク・アプリケーションのための、ロックレスでゼロ・コピーのメッセージング・スキーム Active JP5726316B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/945,146 2010-11-12
US12/945,146 US8737417B2 (en) 2010-11-12 2010-11-12 Lock-less and zero copy messaging scheme for telecommunication network applications
PCT/US2011/056829 WO2012064471A1 (en) 2010-11-12 2011-10-19 Lock-less and zero copy messaging scheme for telecommunication network applications

Publications (2)

Publication Number Publication Date
JP2014501003A true JP2014501003A (ja) 2014-01-16
JP5726316B2 JP5726316B2 (ja) 2015-05-27

Family

ID=44999873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013538754A Active JP5726316B2 (ja) 2010-11-12 2011-10-19 遠隔通信ネットワーク・アプリケーションのための、ロックレスでゼロ・コピーのメッセージング・スキーム

Country Status (8)

Country Link
US (1) US8737417B2 (ja)
EP (1) EP2638467B1 (ja)
JP (1) JP5726316B2 (ja)
KR (1) KR101549422B1 (ja)
CN (1) CN103210619B (ja)
ES (1) ES2848846T3 (ja)
TW (1) TWI451339B (ja)
WO (1) WO2012064471A1 (ja)

Families Citing this family (28)

* 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
US8504744B2 (en) 2010-10-28 2013-08-06 Alcatel Lucent Lock-less buffer management 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
US9071499B2 (en) * 2011-03-28 2015-06-30 Citrix Systems, Inc. Systems and methods for emulating a NIC for packet transmission on hardware RSS unaware NICs in a multi-core system
US9357482B2 (en) 2011-07-13 2016-05-31 Alcatel Lucent Method and system for dynamic power control for base stations
CN102761489B (zh) * 2012-07-17 2015-07-22 中国科学技术大学苏州研究院 基于流水线模式的数据包零拷贝的核间通信方法
CN103475899B (zh) * 2013-07-30 2016-09-07 融创天下(上海)科技发展有限公司 数据分发方法和装置
CN103488717B (zh) * 2013-09-11 2017-02-22 北京华胜天成科技股份有限公司 一种无锁数据汇聚方法及装置
US9519514B2 (en) * 2014-01-29 2016-12-13 Marvell Israel (M.I.S.L) Ltd. Interfacing with a buffer manager via queues
US9584509B2 (en) 2014-05-07 2017-02-28 Cryptography Research, Inc. Auditing and permission provisioning mechanisms in a distributed secure asset-management infrastructure
CN103945456B (zh) * 2014-05-12 2017-06-27 武汉邮电科学研究院 一种基于Linux系统的LTE基站用户面高效UDP数据发送优化方法
CN104052676B (zh) * 2014-06-13 2017-12-05 华为技术有限公司 一种发送通路装置及发送通路的数据处理方法
CN104102494B (zh) * 2014-07-31 2017-07-25 武汉邮电科学研究院 无线通信基站空口数据cipher加速方法
US10348621B2 (en) * 2014-10-30 2019-07-09 AT&T Intellectual Property I. L. P. Universal customer premise equipment
US10257089B2 (en) 2014-10-30 2019-04-09 At&T Intellectual Property I, L.P. Distributed customer premises equipment
US9817776B2 (en) 2015-01-19 2017-11-14 Microsoft Technology Licensing, Llc Memory descriptor list caching and pipeline processing
US10129180B2 (en) 2015-01-30 2018-11-13 Nicira, Inc. Transit logical switch within logical router
US10437523B2 (en) * 2016-02-25 2019-10-08 Red Hat Israel, Ltd. Secure receive packet processing for network function virtualization applications
DE102017124105A1 (de) * 2016-10-24 2018-04-26 Denso Corporation Verfahren zur Portierung einer Single-Core Steuerungssoftware auf ein Multi-Core Steuergerät oder zur Optimierung einer Multi-Core Steuerungssoftware
FR3063095B1 (fr) 2017-02-20 2019-03-15 Utilis Piece thermoplastique renforcee pour une structure porteuse
US10819820B1 (en) * 2017-03-24 2020-10-27 Amazon Technologies, Inc. On-path data caching in a mesh network
US10733096B2 (en) * 2017-11-22 2020-08-04 Samsung Electronics Co., Ltd. System and method for frame buffer
CN111209123A (zh) * 2019-12-26 2020-05-29 天津中科曙光存储科技有限公司 一种本地存储io协议栈数据交互方法和装置
CN114509993B (zh) * 2020-11-16 2023-06-20 沈阳中科数控技术股份有限公司 一种基于国产cpu的自主可控数控系统构建方法
CN112702275A (zh) * 2020-12-29 2021-04-23 迈普通信技术股份有限公司 基于每包转发的方法、装置、网络设备及计算机存储介质
TWI792728B (zh) * 2021-11-29 2023-02-11 瑞昱半導體股份有限公司 封包處理加速裝置
CN115334586B (zh) * 2022-10-17 2023-01-03 深圳市领创星通科技有限公司 数据转发方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008020977A (ja) * 2006-07-11 2008-01-31 Sony Computer Entertainment Inc ネットワークプロセッサシステムおよびネットワークプロトコル処理方法
US20080276056A1 (en) * 2007-04-20 2008-11-06 The Regents Of The University Of Colorado Efficient Point-To-Point Enqueue And Dequeue Communications
JP2010533400A (ja) * 2007-07-13 2010-10-21 インターナショナル・ビジネス・マシーンズ・コーポレーション エンド・ツー・エンド型ネットワークqosの強化

Family Cites Families (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295133A (en) 1992-02-12 1994-03-15 Sprint International Communications Corp. System administration in a flat distributed packet switch architecture
US5872769A (en) 1995-07-19 1999-02-16 Fujitsu Network Communications, Inc. Linked list structures for multiple levels of control in an ATM switch
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
US7299052B2 (en) 1998-11-09 2007-11-20 Samsung Electronics Co., Ltd. System and method for reallocating a traffic channel in soft handoff state
US6606298B1 (en) 1999-06-30 2003-08-12 Cisco Technology, Inc. Module firmware recovery
US6842811B2 (en) 2000-02-24 2005-01-11 Pts Corporation Methods and apparatus for scalable array processor interrupt detection and response
US6999432B2 (en) 2000-07-13 2006-02-14 Microsoft Corporation Channel and quality of service adaptation for multimedia over wireless networks
US6584330B1 (en) 2000-07-18 2003-06-24 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive power management for a node of a cellular telecommunications network
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
JP2002050996A (ja) 2000-07-31 2002-02-15 Sony Corp 整数倍相互関係を有するブロック長を用いて符号化された信号を通信伝送路を介して送信する通信システム
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
US7096034B2 (en) 2001-10-01 2006-08-22 Microsoft Corporation System and method for reducing power consumption for wireless communications by mobile devices
US7768522B2 (en) 2002-01-08 2010-08-03 Apple Inc. Virtualization of graphics resources and thread blocking
US7007042B2 (en) 2002-03-28 2006-02-28 Hewlett-Packard Development Company, L.P. System and method for automatic site failover in a storage area network
US7254812B1 (en) 2002-05-31 2007-08-07 Advanced Micro Devices, Inc. Multi-processor task scheduling
US7093013B1 (en) 2002-06-19 2006-08-15 Alcatel High availability system for network elements
AU2002345467A1 (en) * 2002-06-19 2004-01-06 Telefonaktiebolaget L M Ericsson (Publ) A network device driver architecture
US7180866B1 (en) 2002-07-11 2007-02-20 Nortel Networks Limited Rerouting in connection-oriented communication networks and communication systems
US7020484B2 (en) 2002-10-29 2006-03-28 Qualcomm Incorporated Controlling multiple modems in a wireless terminal using energy-per-bit determinations
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
US7810124B2 (en) 2003-01-28 2010-10-05 Thomson Licensing Robust mode staggercasting fast channel change
US7003597B2 (en) 2003-07-09 2006-02-21 International Business Machines Corporation Dynamic reallocation of data stored in buffers based on packet size
DK1661278T3 (da) 2003-08-25 2009-08-17 Interdigital Tech Corp Forbedret uplink drift ved blöd overlevering
WO2005041516A2 (en) 2003-10-15 2005-05-06 Ntt Docomo, Inc. Apparatus and method for controlling an operation of a plurality of communication layers in a layered communication scenario
JP4287430B2 (ja) 2003-10-15 2009-07-01 株式会社エヌ・ティ・ティ・ドコモ 複数の通信層の動作を制御する装置及び方法
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
US20080107014A1 (en) 2004-04-22 2008-05-08 Utstarcom Telecom Co., Ltd. Distributed Wireless System with Centralized Control of Resources
JP4414305B2 (ja) 2004-08-19 2010-02-10 富士通株式会社 中継装置および中継装置の再起動方法並びに中継装置用ソフトウェアプログラム
US8888600B2 (en) 2004-08-25 2014-11-18 Igt Emulation methods and devices for a gaming machine
US7352693B2 (en) 2005-01-31 2008-04-01 Nextel Communications Inc. Fault tolerant wireless communication systems and methods
US7933197B2 (en) 2005-02-22 2011-04-26 Cisco Technology, Inc. Method and apparatus for constructing a repair path around a non-available component in a data communications network
US7620753B1 (en) 2005-03-17 2009-11-17 Apple Inc. Lockless access to a ring buffer
US8644246B2 (en) 2005-07-05 2014-02-04 Nokia Corporation Scheduling information at serving cell change
GB0519981D0 (en) 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
US7472261B2 (en) 2005-11-08 2008-12-30 International Business Machines Corporation Method for performing externally assisted calls in a heterogeneous processing complex
US20070113229A1 (en) 2005-11-16 2007-05-17 Alcatel Thread aware distributed software system for a multi-processor
DE602005007620D1 (de) 2005-12-14 2008-07-31 Ntt Docomo Inc Vorrichtung und Verfahren zur Bestimmung der Übertragungspolitik für mehrere und verschiedenartige Anwendungen
US8072879B2 (en) 2006-02-03 2011-12-06 Cisco Technology, Inc. Technique for determining whether to reestablish fast rerouted primary tunnels based on backup tunnel path quality feedback
US8689025B2 (en) 2006-02-21 2014-04-01 Qualcomm Incorporated Reduced terminal power consumption via use of active hold state
US7295952B1 (en) 2006-05-24 2007-11-13 International Business Machines Corporation Enabling high availability and load balancing for JMX Mbeans
EP2035928A2 (en) 2006-06-30 2009-03-18 Symbol Technologies, Inc. Systems and methods for processing data packets using a multi-core abstraction layer (mcal)
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)
CN101106490B (zh) 2006-07-11 2012-01-04 华为技术有限公司 预置流分类器的建立方法及其系统和用户终端
CN101491059B (zh) 2006-07-20 2013-02-13 高通股份有限公司 用于在包括gps的实用引擎与应用程序之间共享网络连接的方法和设备
US7873964B2 (en) 2006-10-30 2011-01-18 Liquid Computing Corporation Kernel functions for inter-processor communications in high performance multi-processor systems
US8059532B2 (en) 2007-06-21 2011-11-15 Packeteer, Inc. Data and control plane architecture including server-side triggered flow policy mechanism
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
WO2009039638A1 (en) 2007-09-28 2009-04-02 Pin-Han Ho A robust system and method for wireless data multicasting using superposition modulation
US8527622B2 (en) 2007-10-12 2013-09-03 Sap Ag Fault tolerance framework for networks of nodes
WO2009078764A1 (en) 2007-12-17 2009-06-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for mitigating cell outage
US7944815B2 (en) 2008-02-14 2011-05-17 Allied Telesis Holdings K.K. System and method for network recovery from multiple link failures
US7831710B2 (en) 2008-02-25 2010-11-09 International Business Machines Corporation Communication of offline status between computer systems
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
US8638790B2 (en) 2008-06-23 2014-01-28 Qualcomm Incorporated Method and apparatus for managing data services in a multi-processor computing environment
US20100029266A1 (en) 2008-07-02 2010-02-04 Nokia Corporation System and methods for quality of experience reporting
US7957297B2 (en) 2008-07-14 2011-06-07 Cisco Technology, Inc. Termination message for wireless wide area network routers
US8812886B2 (en) 2008-08-13 2014-08-19 Hewlett-Packard Development Company, L.P. Dynamic utilization of power-down modes in multi-core memory modules
US20100080116A1 (en) 2008-09-29 2010-04-01 Qualcomm Incorporated Re-establishing a radio resource control connection with a non-prepared base station
US8271996B1 (en) 2008-09-29 2012-09-18 Emc Corporation Event queues
CN102217273B (zh) 2008-11-12 2014-12-10 思杰系统有限公司 用于应用流畅性策略的系统和方法
KR101546780B1 (ko) 2008-12-18 2015-08-25 삼성전자주식회사 광대역 무선통신 망에서 서비스 플로우 변경 시 오류 처리를 위한 장치 및 방법
CN102293037A (zh) 2009-01-20 2011-12-21 夏普株式会社 移动台设备、基站设备以及无线链路同步确定方法
JP5042248B2 (ja) 2009-01-22 2012-10-03 株式会社日立製作所 移動体通信システム、呼制御サーバ及びアクセスゲートウェイ装置
CN101801015B (zh) 2009-02-06 2014-03-12 中兴通讯股份有限公司 一种小区退服故障的处理方法及装置
KR101617048B1 (ko) 2009-06-01 2016-05-02 엘지전자 주식회사 다중 반송파 시스템에서 요소 반송파의 실패를 처리하는 방법 및 장치
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
US20100322067A1 (en) 2009-06-19 2010-12-23 Qualcomm Incorporated Method and apparatus to faciliate reestablishing communications in a wireless network
US8737407B2 (en) 2009-06-22 2014-05-27 Citrix Systems, Inc. Systems and methods for distributed hash table in multi-core system
US9775046B2 (en) 2009-06-26 2017-09-26 Qualcomm, Incorporated Power management
US8400955B2 (en) 2009-09-21 2013-03-19 Samsung Electronics Co., Ltd. System and method for power saving by coordinated wake-up in a wireless multi-band network
US8892931B2 (en) 2009-10-20 2014-11-18 Empire Technology Development Llc Power channel monitor for a multicore processor
US8737262B2 (en) 2009-11-24 2014-05-27 Red Hat Israel, Ltd. Zero copy transmission with raw packets
WO2011142733A1 (en) 2010-05-11 2011-11-17 Thomson Licensing A configurable computing architecture
US9298768B2 (en) 2010-07-21 2016-03-29 Sqream Technologies Ltd System and method for the parallel execution of database queries over CPUs and multi core processors
US8634302B2 (en) 2010-07-30 2014-01-21 Alcatel Lucent Apparatus for multi-cell support in a network
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
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
US8504744B2 (en) 2010-10-28 2013-08-06 Alcatel Lucent Lock-less buffer management 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
US8675577B2 (en) 2010-12-20 2014-03-18 Intel Corporation Signaling techniques for a multimedia-aware radio and network adaptation
US20120207011A1 (en) 2011-02-11 2012-08-16 Renesas Mobile Corporation Method and apparatus for responding to an unrecoverable error
US9357482B2 (en) 2011-07-13 2016-05-31 Alcatel Lucent Method and system for dynamic power control for base stations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008020977A (ja) * 2006-07-11 2008-01-31 Sony Computer Entertainment Inc ネットワークプロセッサシステムおよびネットワークプロトコル処理方法
US20080276056A1 (en) * 2007-04-20 2008-11-06 The Regents Of The University Of Colorado Efficient Point-To-Point Enqueue And Dequeue Communications
JP2010533400A (ja) * 2007-07-13 2010-10-21 インターナショナル・ビジネス・マシーンズ・コーポレーション エンド・ツー・エンド型ネットワークqosの強化

Also Published As

Publication number Publication date
KR20130087553A (ko) 2013-08-06
KR101549422B1 (ko) 2015-09-02
ES2848846T3 (es) 2021-08-12
CN103210619A (zh) 2013-07-17
TW201237762A (en) 2012-09-16
US8737417B2 (en) 2014-05-27
TWI451339B (zh) 2014-09-01
CN103210619B (zh) 2015-10-21
EP2638467B1 (en) 2020-12-02
WO2012064471A1 (en) 2012-05-18
EP2638467A1 (en) 2013-09-18
JP5726316B2 (ja) 2015-05-27
US20120120965A1 (en) 2012-05-17

Similar Documents

Publication Publication Date Title
JP5726316B2 (ja) 遠隔通信ネットワーク・アプリケーションのための、ロックレスでゼロ・コピーのメッセージング・スキーム
JP5726320B2 (ja) 単一のモデム・ボードにおける改善されたマルチセル・サポートのための方法およびシステム
US20180234516A1 (en) Accelerated network packet processing
US20190034363A1 (en) Accelerator interconnect assignments for virtual environments
US8504744B2 (en) Lock-less buffer management scheme for telecommunication network applications
US20120093047A1 (en) Core abstraction layer for telecommunication network applications
CN110214436B (zh) 一种多核无锁速率限制装置和方法
TW201316803A (zh) 用於基地台之動態功率控制的方法及系統
Budhdev et al. FSA: Fronthaul slicing architecture for 5G using dataplane programmable switches
Kundu et al. Hardware acceleration for open radio access networks: A contemporary overview
Chetlur et al. A software wimax medium access control layer using massively multithreaded processors

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140724

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141024

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20141031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150331

R150 Certificate of patent or registration of utility model

Ref document number: 5726316

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250