JP5759006B2 - 電気通信ネットワーク・アプリケーションのためのコア抽象化レイヤ - Google Patents

電気通信ネットワーク・アプリケーションのためのコア抽象化レイヤ Download PDF

Info

Publication number
JP5759006B2
JP5759006B2 JP2013533873A JP2013533873A JP5759006B2 JP 5759006 B2 JP5759006 B2 JP 5759006B2 JP 2013533873 A JP2013533873 A JP 2013533873A JP 2013533873 A JP2013533873 A JP 2013533873A JP 5759006 B2 JP5759006 B2 JP 5759006B2
Authority
JP
Japan
Prior art keywords
core
module
processor
buffer
configuration
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.)
Expired - Fee Related
Application number
JP2013533873A
Other languages
English (en)
Other versions
JP2014501054A (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 JP2014501054A publication Critical patent/JP2014501054A/ja
Application granted granted Critical
Publication of JP5759006B2 publication Critical patent/JP5759006B2/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]
    • 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
    • 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
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling
    • H04W72/1263Mapping of traffic onto schedule, e.g. scheduled allocation or multiplexing of flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling
    • H04W72/1221Wireless traffic scheduling based on age of data to be sent

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−セル)構成をサポートするためには、セルの数と同じ数のモデム・ボードを提供することが、必要であろう。
アプリケーション・レイヤと、ハードウェア・レイヤとの間に位置しており、低レベルのハードウェアに関連した機能からアプリケーション・レイヤを切り離すミドルウェア抽象化レイヤについての必要性が存在する。
処理環境において、ミドルウェア・レイヤは、一般的に、すべてのハードウェア特有の実装の詳細をアプリケーション・レイヤから隠す。新しいサブシステム、コア抽象化レイヤ(CAL:core abstraction layer)は、マルチ・コア・プロセッサ・ベースのモデム・ボードのミドルウェア・レイヤに導入される。この新しいモジュールは、マルチ・コア・プロセッサと、そのデータ・パス加速アーキテクチャ(またはDPAA:Data Path Acceleration Architecture)とについての抽象化を提供する。このモデム・ボードの展開の場合には、CALは、LTE L2アプリケーションについてのゼロ・コピー・ロック・フリー・バッファ管理スキームなど、様々なサービスと、マルチ・セル構成についてのコントローラ・ボードへの無線リンク制御(RLC:Radio Link Control)サービス・データ・ユニット(SDU:Service Data Unit)送信と、コントローラ・ボードからの無線リンク制御(RLC)サービス・データ・ユニット(SDU)受信とのためのバックプレーン・イーサネット・ドライバ(BED:Backplane Ethernet driver)インターフェースについてのサポートとを提供する。
ソフトウェア移植性が、CALの主要な目的である。それはまた、アプリケーション、ミドルウェア、およびプラットフォーム・レイヤ・サービスの並列なソフトウェア開発を容易にする低レベルのプラットフォーム・サービスからアプリケーション・レイヤを切り離す。したがって、アプリケーション・レイヤ・ソフトウェアに対してほとんど影響を与えずに、または全く影響を与えずに、マルチ・コア・プロセッサについての多かれ少なかれ、コアを用いて、または異なるベンダーさえも用いて、複数のプロセッサに移行することは比較的簡単であろう。
本発明の一態様においては、電気通信ネットワークにおいてマルチ・セル・サポートを提供するための装置が、提供される。本装置は、モデム・ボードと、マルチ・コア・プロセッサとを含む。プロセッサは、一般に、モデム・ボードに取り付けられた複数のプロセッサ・コアを含んでおり、そこでは少なくとも1つのプロセッサ・コアを使用して、すべての制御プレーン機能を実行し、また残りのプロセッサ・コアを使用して、すべてのデータ・プレーン機能と、プロセッサ・コアの上で実行されるアプリケーション・ソフトウェアからどのようなコア特有の詳細も隠すコア抽象化レイヤとを実行する。コア抽象化レイヤは、様々なモジュールを含んでいる。初期化モジュールは、1つまたは複数のフレーム・マネージャに対してネットワーク構成データと、静的な構文解析分類配信(PCD:parsing, classifying and distributing)ルールとをロードし、また1組の構成ファイルに基づいてコア抽象化レイヤ・フレームワークをセットアップする。バッファ・モジュールは、レイヤ2アプリケーションについてのロック・レス・バッファ管理サービス(lock−less buffer management services)を提供することができる。メッセージング・モジュールは、別のボードへとユーザ・プレーン・データを送信し、または別のボードからユーザ・プレーン・データを受信するように、ゼロ・コピー、およびロック・レスのメッセージング・サービスをレイヤ2ソフトウェアに対して提供することができる。PCDモジュールは、適切なコアに対して入口フレーム(ingress frames)をルーティングするための、フレーム・マネージャによって使用されるべきPCDのルールおよび構成を提供する。データ・パス加速アーキテクチャ(DPAA)トレース・モジュールは、DPAAドライバ・モジュールにおいてトレースをイネーブルにし、またディスエーブルにするためのトレース能力を提供する。
本発明の別の態様においては、電気通信ネットワークにおいてマルチ・セル・サポートを提供するための装置が提供される。本装置は、モデム・ボードと、そのモデム・ボードに取り付けられた複数のプロセッサ・コアを有するマルチ・コア・プロセッサとを含み、そこでは単一のパーティションが、その中に含まれるプロセッサ・コアのすべてを用いて定義され、またそこでは単一のパーティションを使用して、すべての制御プレーン機能、およびすべてのデータ・プレーン機能、ならびに単一パーティションにおいてプロセッサ・コアの上で実行されるアプリケーション・ソフトウェアからどのようなコア特有の詳細も隠すコア抽象化レイヤを実行する。コア抽象化レイヤは、様々なモジュールを含んでいる。初期化モジュールは、1つまたは複数のフレーム・マネージャに対してネットワーク構成データと、静的な構文解析分類配信(PCD)ルールとをロードし、また1組の構成ファイルに基づいてコア抽象化レイヤ・フレームワークをセットアップする。バッファ・モジュールは、レイヤ2アプリケーションについてのロック・レス・バッファ管理サービスを提供することができる。メッセージング・モジュールは、別のボードへとユーザ・プレーン・データを送信し、または別のボードからユーザ・プレーン・データを受信するように、ゼロ・コピー、およびロック・レスのメッセージング・サービスをレイヤ2ソフトウェアに対して提供することができる。PCDモジュールは、適切なコアに対して入口フレームをルーティングするための、フレーム・マネージャによって使用されるべきPCDのルールおよび構成を提供する。データ・パス加速アーキテクチャ(DPAA)トレース・モジュールは、DPAAドライバ・モジュールにおいてトレースをイネーブルにし、またディスエーブルにするためのトレース能力を提供する。
本発明のさらに別の態様においては、マルチ・コア・プロセッサについてのコア抽象化レイヤが、提供される。コア抽象化レイヤは、様々なモジュールを含んでいる。初期化モジュールは、1つまたは複数のフレーム・マネージャに対してネットワーク構成データと、静的な構文解析分類配信(PCD)ルールとをロードし、また1組の構成ファイルに基づいてコア抽象化レイヤ・フレームワークをセットアップする。バッファ・モジュールは、レイヤ2アプリケーションについてのロック・レス・バッファ管理サービスを提供することができる。メッセージング・モジュールは、別のボードへとユーザ・プレーン・データを送信し、または別のボードからユーザ・プレーン・データを受信するように、ゼロ・コピー、およびロック・レスのメッセージング・サービスをレイヤ2ソフトウェアに対して提供することができる。PCDモジュールは、適切なコアに対して入口フレームをルーティングするための、フレーム・マネージャによって使用されるべきPCDのルールおよび構成を提供する。データ・パス加速アーキテクチャ(DPAA)トレース・モジュールは、DPAAドライバ・モジュールにおいてトレースをイネーブルにし、またディスエーブルにするためのトレース能力を提供する。
本発明の適用可能性のさらなる範囲は、以下で提供される詳細な説明から明らかになるであろう。しかしながら、詳細な説明および特定の例は、本発明の好ましい例を示しながら、本発明の趣旨および範囲の内部にある様々な変更形態および修正形態が、当業者には明らかになるので、例証としてのみ与えられることを理解すべきである。
本発明は、デバイスの様々な部分の構造、構成、および組合せ、ならびに方法のステップの中に存在し、これによって、企図される目的は、以下でより十分に説明され、特許請求の範囲の中で特に指摘され、また添付の図面の中で示されるように、達成される。
本発明の態様によるプラットフォーム・アーキテクチャの一実施形態を示す図である。 本発明の態様によるプラットフォーム・アーキテクチャの代替的な一実施形態を示す図である。 本発明の態様によるコア抽象化レイヤを実装するための例示のアーキテクチャを示す図である。
それらの提示が例示の実施形態だけを示す目的のためであり、また特許請求の範囲の主題を限定する目的のためではない図面を次に参照すると、図1は、現在説明しようとしている実施形態を組み込むことができるシステムの図を提供するものである。このプラットフォーム・アーキテクチャは、一般にモデム・ボードの上で使用されるが、それは、他のアプリケーションにおいても使用され得ることを理解すべきである。この場合には、8つのコア(図において、12、14、16、18、20、22、24、および26のように示される)を有するマルチ・コア・プロセッサ10が、提供される。しかしながら、マルチ・コア・プロセッサ10は、任意の数のコアを有することができることを理解すべきである。この例においては、第1のパーティション28は、第1のオペレーティング・システム(OS1)32を実行する制御プレーン30についてのものである。第1のパーティション28はまた、オペレーション、統治、および管理(OA&M)34と、BCS/UPS 36とを含む。BCS/UPS 36は、OA&Mエンティティなどのアプリケーション・ソフトウェアに対してハードウェアについての抽象化を提供するミドルウェア・レイヤである。残りの7つのコアのおのおの当たりに1つの、7つのAMPパーティション(図において、38、40、42、44、46、48、50のように示される)は、おのおのが、第2のオペレーティング・システム(OS2)54を実行するデータ・プレーン52についてのものである。
レイヤ2(L2)処理のすべては、一般的に、プロセッサの7つのコアの上で実行される。レイヤ2は、コンピュータ・ネットワーキングの7レイヤのOSIモデルのうちのデータ・リンク・レイヤである。データ・リンク・レイヤは、広域ネットワークにおける隣接したネットワーク・ノードの間で、または同じローカル・エリア・ネットワーク・セグメントの上のノードの間でデータを転送するプロトコル・レイヤである。データ・リンク・レイヤは、ネットワーク・エンティティの間でデータを転送する機能的手段および手続き的手段を提供し、また物理レイヤにおいて起こる可能性のあるエラーを検出し、場合によってはエラーを訂正する手段を提供することもある。データ・リンク・プロトコルの例は、ローカル・エリア・ネットワーク(マルチ・ノード)のためのイーサネットと、ポイント・ツー・ポイント・プロトコル(PPP)と、HDLCと、ポイント・ツー・ポイント(デュアル・ノード)接続のためのADCCPとである。この場合には、L2は、一般に、LTEエア・インターフェースのために必要とされるL2スケジューラ処理のことを意味しており、これは、非常に厳しいリアル・タイム要件を有する。
レイヤ1(L1)処理のすべては、一般的に、DSPおよびFPGAの上で実行される。とりわけ、コア抽象化レイヤ(CAL)56は、L2アプリケーション・ソフトウェアからコア特有の詳細を隠す。
例示のアーキテクチャは、すべてのこれらのパーティションが、独立に実行され、また互いに破損し合わないことを保証する(すなわち、障害分離を保証する)、ハイパーバイザ58などのスーパーバイザ・ソフトウェア・エンティティをさらに含むことができる。ハイパーバイザは、仮想化において使用されるソフトウェア・プログラムである。ハイパーバイザは、いくつかのオペレーティング・システムが、与えられた1つのハードウェアの上で並んで実行されることを可能にする。従来の仮想コンピューティング・プログラムとは違って、ハイパーバイザは、ターゲット・ハードウェアの上で直接に実行される。これにより、ゲスト・オペレーティング・システムと、ハイパーバイザとの両方は、ずっとより効率的に実行することができるようになる。可能性があるハイパーバイザのリストは、それだけには限定されないが、以下の複数のタイプを、すなわち、Xen(Citrix)と、KVM(カーネル・ベースの仮想マシン)と、VMware ESX/vmkernelと、マイクロソフト(Microsoft) Hyper−Vと、PowerVM(IBM)と、論理ドメイン(Logical Domains)/Oracle VMと、ウィンド・リバー・ハイパーバイザ(Wind River Hypervisor)とを含む。
この例においては、プロセッサ10は、3つのセル(図において60、62、および64として示される)にサービスを行う。各セルは、アップリンク(UL)スケジューラ(図において、66、70、および74として示される)と、ダウンリンク(DL)スケジューラ(図において68、72、および76として示される)とを必要とする。
無線リンク制御(RLC)レイヤを使用して、LTEエア・インターフェースを通して送信され、また受信されるパケット・フレームの上で、エラーをセグメント化し、連結させ、また訂正することが、知られている。無線リンク制御および媒体アクセス制御の(RLC/MAC)ソフトウェアは、GPRS(2.5G)ワイヤレス・スタックの中で使用される。RLC/MACソフトウェアは、移動局と基地局制御装置(BSC:base station controller)との間の肯定応答されたデータ転送と、肯定応答されないデータ転送とを提供する。これに関して、プロセッサ10は、RLC/MACブロック78をさらに含んでおり、このRLC/MACブロックは、モバイルとネットワークとの間で使用されるエア・インターフェースの上の基本トランスポート・ユニットである。RLC/MACブロックを使用して、データとRLC/MAC信号とを搬送する。
次に図2を参照すると、代替的なプラットフォーム・アーキテクチャ100が、示されている。このアーキテクチャは、一般にモデム・ボードの上で使用されるが、このアーキテクチャが他のアプリケーションにおいても使用され得ることを理解すべきである。この実施形態においては、1つのパーティションは、その中のすべての8つのコアを用いて定義される。しかしながら、マルチ・コア・プロセッサ100は、任意の数のコアを有し得ることを理解すべきである。この実施形態を用いて、それゆえに、すべてのコア(例えば、8つのコア)の上で実行される単一のSMP OSインスタンス102を使用することが可能である。制御プレーンと、データ・プレーンとは、今や1つのOSインスタンスの下にあるので、データ・プレーンに伴う問題が、制御プレーンも同様に駄目にすることにならないことを保証する配慮が必要とされる。
この例においては、プロセッサ100は、3つのセル(図において104、106、および108として示される)にサービスを行う。各セルは、アップリンク(UL)スケジューラ(図において、110、112、および114として示される)と、ダウンリンク(DL)スケジューラ(図において116、118、および120として示される)とを必要とする。RLC/MACブロック122もまた含められ、このRLC/MACブロックは、モバイルとネットワークとの間で使用されるエア・インターフェースの上の基本トランスポート・ユニットである。RLC/MACブロックを使用して、データと、RLC/MAC信号とを搬送する。プロセッサ100はまた、OA&M 124と、BCS/UPS 126とを提供する。
第1の実施形態におけるように、プロセッサ100は、コア抽象化レイヤ(CAL)128を含んでおり、このコア抽象化レイヤは、L2アプリケーション・ソフトウェアからコア特有の詳細を隠す。
基地局のリアル・タイム性能の必要性を満たすために、PREEMPT_RTパッチを有するSMPリナックス(SMP Linux)などのOSが、使用されることもある。もちろん、他のオペレーティング・システムも使用され得ることを理解すべきである。SMP構成は、監視されたAMP構成の決定論的動作を失う傾向があることもある。SMP構成において、決定論的動作を達成するために、本システムは、コア予約とコア親和性構造とを使用して、AMPのようなシステム動作を達成するようにして実装されることが好ましい。これはまた、例えば、PREEMPT_RT OSを有するSMPリナックスから最高の性能を引き出すためにも望ましい。バッファ管理などのロック・レス・ゼロ・コピー・サービスと、メッセージング・サービスとの使用は、PREEMPT_RT OSを有するSMPリナックスの使用によって課される任意のレイテンシー問題に対処する助けを行うこともできる。
図1および2に示されるようなコア抽象化レイヤ(56、128)の主要機能のうちの1つは、マルチ・コア・プラットフォームの全部の能力を利用する様々なサービスをL2処理などの高レベルアプリケーションに提供することである。コア抽象化レイヤは、このようにして、いくつかの目標を達成するように設計される。第1に、コア抽象化レイヤは、より高いレベルのアプリケーション・ソフトウェア(すなわち、L2ソフトウェア)からDPAAおよびマルチ・コア特有の実装を隠しながら、BED(バックプレーン・イーサネット・ドライバ(Backplane Ethernet Driver))DPAA−ベースのインターフェースをサポートすべきである。第2に、コア抽象化レイヤは、P4080のDPAAハードウェア・コンポーネントを利用して、入口方向と出口方向との両方において、ユーザ・プレーン・データについての加速されたデータ・パスを提供すべきである。第3に、コア抽象化レイヤは、できる限り多くの柔軟性を実現して、そのようにして構成変更に(すなわち、コード変更を必要とすることなく)簡単に適応させるべきである。CAL構成の一例は、バッファ・プールと、入口フレーム待ち行列と、出口フレーム待ち行列とについてのDPAAリソース構成である。
次に図3を参照すると、これらの目標および他の目標を達成する例示のアーキテクチャ300が、示されている。これに関して、コア抽象化レイヤ(CAL)301は、ユーザ−空間の中に、コア抽象化レイヤ初期化(CALInit)モジュール302と、コア抽象化レイヤ・バッファ(CALBuf)モジュール304と、コア抽象化レイヤ・メッセージング(CALMsg)モジュール306と、コア抽象化レイヤ構文解析分類配信(CALPcdFmc)モジュール308と、コア抽象化レイヤDPAAトレース(CALDpaaTrace)モジュール310とを含む様々なモジュールを含んでいる。CAL 301は、カーネル−空間モジュールを、すなわち、コア抽象化レイヤDPAAドライバ(CALDpaaDriver)312を含むこともできる。
アーキテクチャ300は、リナックスPreempt RTなど、適切なオペレーティング・システム314をさらに含んでいる。オペレーティング・システム314は、上記のCALDPaaドライバ312、少なくとも1つのフレーム・マネージャ(FMan)ドライバ316、少なくとも1つのバッファ・マネージャ(BMan)ドライバ318、少なくとも1つの待ち行列マネージャ(QMan)ドライバ320など、様々なドライバをサポートする。
図3に示されるように、アーキテクチャ300は、P4080 CoreNetファブリック322を適切に含むことができ、このP4080 CoreNetファブリックは、スケーラブル・オン・チップ・ネットワークが複数のパワー・アーキテクチャ処理コアをキャッシュ、スタンド・アロン・キャッシュ、およびメモリ・サブシステムと接続するために適切な相互接続アーキテクチャである。
P4080プロセッサは、新しいデータ・パス加速アーキテクチャ(DPAA)の実装形態を含んでいる。したがって、アーキテクチャ300は、P4080 DPAA 324をさらに含むことができる。DPAA 324は、ネットワーク・インターフェースと、ハードウェア・アクセラレータとを含めて、負荷拡散やリソースの共用などのマルチ・コア・ネットワーク処理を最適化するように設計される。示されるように、DPAA 324は、一般に、BMan 326、QMan 328、第1および第2のFman 330および332など、様々なマネージャをそれぞれ含んでいる。
CALInitモジュール302は、一般的に、LTEネットワーク構成と、任意の静的PCDルールとをフレーム・マネージャ330および332に対してロードし、また1組の構成ファイルに基づいてCALフレームワークをセットアップする。CALInitモジュール302は、CAL構成(例えば、ユーザ・プレーンDPAリソース)をロードしセットアップするようにFMan PCDと、CALDpaaドライバ312とを構成するFMC(FMan構成ツール)(図示されず)、または任意の数のFMan API(単数または複数)(図示されず)とインターフェースする。本明細書において使用される場合、用語API(またはアプリケーション・プログラミング・インターフェース)は、ソフトウェア・プログラムによって実装されるインターフェースを意味しており、このソフトウェア・プログラムは、他のソフトウェアと相互作用することを可能にする。それは、ユーザ・インターフェースが、ユーザとコンピュータとの間の相互作用を容易にするやり方と同様に、異なるソフトウェア・プログラムの間の相互作用を容易にする。APIは、アプリケーションと、ライブラリと、オペレーティング・システムとによって実装されて、それらの用語集と呼び出す慣習とを決定し、またAPIを使用して、それらのサービスにアクセスする。APIは、APIの消費者と、実装者との間で情報をやりとりするために使用されるルーチンと、データ構造と、オブジェクト・クラスと、プロトコルとについての仕様を含むことができる。
CALInitモジュール302はまた、LEC(リナックス・エラー・コレクタ(Linux Error Collector))サービスを経由してデバッグ・メカニズムを提供し、これによって様々なCALおよびDPAAのリソースの状況および統計データが、事後の調査のためのLECのスナップショット・ファイルに対して収集され、またダンプされる。
ワイヤレス多重アクセス通信システムにおいては、トランスミッタとレシーバとは、マルチ・レイヤの通信スタックを使用して、情報をやりとりすることができることが、知られている。レイヤは、例えば、物理レイヤ、媒体アクセス制御(MAC)レイヤ、無線リンク制御(RLC)レイヤ、プロトコル・レイヤ(例えば、パケット・データ・コンバージェンス・プロトコル(PDCP:packet data convergence protocol)レイヤ)、アプリケーション・レイヤなどを含むことができる。RLCレイヤは、PDCPレイヤからサービス・データ・ユニット(SDU)を受信し、またMACレイヤに対して送信するためにSDUをRLCプロトコル・データ・ユニット(PDU)へと連結し、またはセグメント化する。
それに応じて、CALBufモジュール304は、RLC SDU処理において使用するためにL2アプリケーションについてのロック・レス・バッファ管理サービスを提供する。当技術分野において知られているように、非ブロッキング・アルゴリズムは、共用されたリソースについて競合するスレッドが、それらの実行が相互排除によって無期限に延期されないことを保証する。システム規模の進歩が保証されている場合に、非ブロッキング・アルゴリズムは、ロック・レス(またはロック・フリー)である。CALBufモジュール304はまた、バッファ・プール統計データ(例えば、プール枯渇状態、枯渇カウント、プール使用可能状態、プール割付エラー・カウントなど)についての問い合わせをサポートする。CALBufモジュール304は、サービスを実装するCALDpaaドライバ312とインターフェースする。CALBufモジュール304は、マルチ・コア環境における適切なシステム・オペレーションのために非常に重要であるロック・レス・バッファ管理スキームを提供し、ここでは、非リアル・タイム・プロセスによってとられるロックは、そのロックのリリースを待つリアル・タイム・プロセスの場合に、レイテンシー問題を引き起こす可能性がある。
CALMsgモジュール306は、DPAAを経由して、RLC SDUを受信し(入口)、またRLC SDUを送信する(出口)サービスを提供する。CALMsgモジュール306はまた、Tx/Rxイーサネット・インターフェース統計データ(例えば、受信され、または送信されるFDの数、脱落されるFDの数、悪いFDの様々なタイプなど)についての問い合わせをサポートする。CALMsgモジュール306は、サービスを実装するCALDPaaドライバ312とインターフェースする。CALMsgモジュール306は、プロトコル・スタックの使用なしに、TCP/UDP IPパケットを送信し、また受信するゼロ・コピー・ロック・レス・メッセージング・サービスをLTE L2アプリケーションに対して提供する。これは、アプリケーション・ソフトウェアが、LTEシステムの適切なシステム動作を破壊してしまう可能性がある制限されないレイテンシー・スパイクに出合わないことを保証するために必要とされ、このLTEシステムは、非常に厳しいリアル・タイム処理要件を有する。
CALPcdFmcモジュール308は、適切なコアに対して入口フレームをルーティングするための各FMan(330、332)によって使用されるべき、構文解析分類配信(PDC)のルールおよび構成を提供する。
CALDPaaTraceモジュール310は、CALDpaaDriver312においてトレースをイネーブルにし、またディスエーブルにするためのトレース能力を提供する。CALDPaaTraceモジュール310は、そのようなサービスを実装するCALDpaaドライバ312とインターフェースする。
CALDpaaDriver 312は、CAL 301のカーネル−空間コンポーネントであり、このドライバは、BmanおよびQmanのAPIを使用して、バッファ管理サービスおよびメッセージング・サービスを実装し、また提供する助けを行う。CALDpaaDriver 312は、ユーザ・プレーン・データ配信のために使用されるべきDPAAリソース(バッファ・プールおよびフレーム待ち行列)を管理すること、オープン、リリース、初期化のためのi−o−制御(ioctl)、バッファ管理、メッセージング・サービスなど、様々なファイル・オペレーションを経由してユーザ−空間インターフェースを他のCALモジュールに対して提供すること、カーネル−ユーザ空間(K−U)バッファ・マッピングを実行すること、DPAAバッファ・プールと、レシーバおよびトランスミッタとの統計データを提供すること、およびリング・バッファを管理するためのサービスを実装することを担っている。リング・バッファは、CALのL2ソフトウェア待ち行列を表し、また特定のL2 DLTに向かうことになっているFDを記憶するために使用されることに注意すべきである。CALMsgモジュール306は、L2がリングからバッファ記述子を取り出すためのAPIを提供する。
上記で説明されるCALコンポーネントのすべては、CALDpaaDriver 312を除いて、一般に、プラットフォーム・ミドルウェア(ユーザ−空間の中で実行される)である。CALDpaaDriver 312は、カーネル−空間の中で実行されるカスタム・ドライバであり、それは、CALユーザ空間ミドルウェアによって必要とされるサービスを−とりわけ、P4080 DPAAハードウェア・コンポーネントに依存するこれらのサービスを実装し、また提供するように設計される。
CALInitモジュール302は、様々な機能を提供することを担っている。起動時におけるマスタ・コアでは、CALInitモジュール302は、CALフレームワークをセットアップして、「高速パス」処理をサポートする。このステップは、CALDpaaDriver 312を初期化するステップを含むことができ、初期化するステップは、(a)ユーザ・プレーン・データ(例えば、バッファ・プール、FQ(またはフレーム待ち行列(frame queues))を処理するために必要とされる様々なDPAAリソースを生成し、また(b)DPAA(例えば、バッファ・プール構成、FQ、および入口FQとDLT IPアドレスとの間の関連付けなどを保持する内部テーブル)を経由してバッファ管理サービスおよびメッセージング・サービスをサポートするために必要とされるCALインフラストラクチャを生成することになる。CALInitモジュール302はまた、LTE FMCの(静的な)PCDルールとネットワーク構成とをロードする。
起動時におけるマスタ・コアおよびユーザ・プレーン・コア(ここにL2 DLTおよびL2アップリンク・スケジューラのスレッドが、バインドされる)では、CALInitモジュール302は、LECを用いてCAL 301を実行し、登録し、またアタッチする。プロセスが、異常に終了する(例えば、LECの致命的なエラーが引き起こされる)ときに、これは、呼び出すべきルーチンをLECのスナップショット・タスクに提供する。このルーチンは、バッファ・プール統計データとTx/Rxイーサネット・インターフェース統計データとを含めて、様々なCALデータとDPAAデータとを収集し、またデバッグの目的のためにそのデータをLECのスナップショット・ファイルにダンプする。
CALBufモジュール304は、「高速パス」データ処理のために排他的に使用されるべきバッファ管理サービスを提供する。CALBufモジュール304は、ユーザ−空間APIをL2アプリケーションに対して提供する。CALBufモジュール304は、CALDpaaDriver 312と協調して、CALDpaaドライバ312が、生成するが、Bman 326によって管理されるバッファについてのゼロ・コピーおよびロック・レス・バッファ管理のサービスを提供する。
CALBufモジュール304は、数ある中でも以下のサービスを、すなわち
1.バッファ・サイズを仮定して、バッファを獲得すること、
2.与えられたサイズの与えられた数のバッファを獲得し、また次いで、使用可能なバッファのリストをバッファの要求された数になるまで戻すこと、
3.指定されたバッファをリリースすること、
4.バッファのリストをリリースすること、および
5.バッファ・プール統計データについて問い合わせを行うこと
をサポートするAPIを実装し、また提供する。
CALMsgモジュール306は、別のボード(すなわち、eCCM)に対してユーザ・プレーン・データを送信し、また別のボードからユーザ・プレーン・データを受信するメッセージング・サービスをL2ソフトウェアに対して提供する。CALMsgモジュール306は、一般に、DPAAを経由してロック・レス・ゼロ・コピー・メッセージング・サービスを提供するCALDpaaDriver 312とインターフェースする。この機能により、L2アプリケーション・ソフトウェアは、制限されないレイテンシー遅延を回避するプロトコル・スタックの使用なしに、TCP/UDP IPパケットを送信し、また受信することができるようになる。
CALMsgモジュール306は、以下の段落において説明されるサービスなど、様々なサービスをサポートするAPIを実装し、また提供する。
1つの可能性のあるサービスは、CALMsgサービスへの(L2)アプリケーション・エンティティの登録であり、それによってエンティティは、「高速パス」を経由して着信パケットを受信することができる。この登録プロセス中に、CALのL2ソフトウェア待ち行列(リング・バッファ)が、エンティティに向かうことになっている、受信されたバッファ記述子を保持するように生成される。この登録中にもまた、CALMsgモジュール306は、IPアドレスに対する入口FQと、他の処理(例えば、フレームがFQに到達するときに、どのリング・バッファに対してバッファ記述子をプッシュすべきかを決定すること)において後の参照(単数または複数)のためのリングIDとの間の関連付けを生成し、カーネル−空間からユーザ−空間への関連のあるバッファ・プールのマッピングを実行し、また(静的ルールを経由してまだ行われていない場合)アプリケーション・エンティティについてのPCDルールを構成する。さらに、登録プロセスの最初に、CAL 301は、アプリケーションによって獲得されるすべてのバッファが、スレッドがクラッシュするときに、適切にリリースされることを保証するための防衛戦略を実装する。
第2のサービスは、アプリケーション・エンティティに向かうことになっているフレームを取り出すことである。戻されたバッファ・アドレスが、イーサネット・ヘッダで開始されるペイロードの開始を指し示すことになることが期待される。
第3のサービスは、ユーザ・プレーン・データ(例えば、eth0)を処理するように構成されたイーサネット・インターフェースの上でDPAAを経由してメッセージを外部エンティティに対して送信することである。L2は、必要とされるすべてのヘッダ(イーサネット、IP、UDP)を入力し、またハードウェアは、IPチェックサムとUDPチェックサムとを生成し、また入力するように適切に構成されていることになることが期待される。
第4のサービスは、レシーバおよびトランスミッタのポート統計データについて問い合わせを行うことである。
第5のサービスは、CALMsgモジュール306からアプリケーション・エンティティの登録を解除することである。ひとたびアプリケーション・エンティティの登録が解除された後に、アプリケーション・エンティティは、もはや「高速パス」を経由してパケットを受信することができなくなる。登録解除プロセスの一部として、CALは、アプリケーション・ソフトウェアによって獲得されるすべてのバッファをリリースすることになる。CALMsgモジュール306を使用して、高速パスを経由してフレームを受信する場合には、関連するリング・バッファおよびPCDルールもまた、取り除かれるであろう。
CALPcdFmcモジュール308は、少なくともネットワーク・インターフェース構成ファイルと、CAL 301が、FMan(330、332)のPCDコンポーネントを初期化し、構成するために使用することができる構文解析分類配信(PCD)ルールとを提供する。FManのPCDコンポーネントは、適切なコアへの着信フレームの配信を可能にするように構成される必要がある。
例示のアーキテクチャを用いて、LTE PCDルールを(静的に、または動的に)定義するために使用され得る戦略の一例が、以下で説明される。
ユーザ−空間の配信に関して、IPヘッダおよびUDPヘッダとともにユーザ−空間イーサネット・インターフェース(eth0)に到着するすべてのフレームは、(FManによる)粗い分類を通過することになる。これは、適切なPCDルールのプロビジョニングを経由して(静的に、または動的にのいずれかで)達成され得る。正確なマッチ配信スキームを使用して、宛先IPアドレスの全部または一部を(宛先IPアドレスのどの部分が静的に定義され得るかに応じて)特定のコアに対してマッピングすることができる。マッチしていない任意のフレームは、デフォルトにより、制御プレーン・コア(すなわち、core0)に割り当てられるFQのキューに加えられることになる。
デフォルトの配信に関して、制御プレーン・イーサネット・インターフェース(eth1)またはデバッグ・イーサネット・インターフェース(eth2)に到達するすべてのフレームは、制御プレーン・コア(すなわち、core0)に対して配信されることになる。
どのようにして、またいつPCDルールが、Fmanにおいて定義され、また構成されるかは、PCDルールが、プラットフォームの初期化中に、あらかじめ定義され、また構成されるかどうかに依存する。L2(ダウンリンク)スレッドのIPアドレスと、様々なコアに対するそれらのバインディングが、前もって決定され得ないので、ボードの起動および初期化中に入口(ダウンリンク)ユーザ・プレーン・パスについてのFmanのPCDルールを定義することは、可能ではない。それゆえに、ユーザ・プレーン・データ・パスについてのPCDルールは、セルが構成された後のランタイムに、定義される必要がある。ダウンリンク・スケジューラ(DLT)IPアドレスと、スレッドがバインドされる相手のコアとは、DLTが、CALMsgモジュール306に登録されるときには、一般に知られている。他方、制御プレーンとデバッグ・トラフィックとについてのディスパッチ・ルールは、直接的なものであり、どのような変形形態にも依存しない。したがって、制御プレーンおよびデバッグ・プレーンのトラフィックについてのPCDルールは、静的に定義され、また初期化中に構成されることもある。
制御プレーン・イーサネット・インターフェースについてのPCDルールと、デバッグ・イーサネット・インターフェースについてのPCDルールとは、前もって定義され、また(FSL)イーサネット・ドライバが初期化されるときに、構成されることもある。ユーザ・プレーン・イーサネット・インターフェースでは、PCDルールは、知られているIPアドレスとバインディング・コアとを用いて、DLTが過ぎた後のランタイムに定義され、また構成される必要がある。
CALDPaaTraceモジュール310は、CALDpaaドライバ312と、様々なP4080 DPAAコンポーネント(ドライバ)とについてトレースし、デバッグすることをイネーブルにし、またディスエーブルにする様々なサービスを提供する。これらのサービスは、例えば、(1)CALDpaaドライバ・トレースをイネーブルにし、またディスエーブルにすること、(2)Bmanトレース(将来)をイネーブルにし、またディスエーブルにすること、(3)Qmanトレース(将来)をイネーブルにし、またディスエーブルにすること、および(4)Fmanトレース(将来)をイネーブルにし、またディスエーブルにすることを含む。
CAL 301が、使用され得る様々なシナリオが存在する。例えば、CAL 301は、初期化時に(すなわち、プラットフォームの起動中に)マスタ・コアをサポートすることができる。すなわち、
1.CAL構成データ(例えば、DPAAリソース構成)をロードすること、およびCALDpaaドライバ312を初期化することにより、CALのフレームワークをセットアップする。
2.もしあれば、LTE FMCのネットワーク・インターフェース構成と静的PCDルールとをロードする。
CAL 301は、初期化時にユーザ−空間プロセスをサポートすることもできる。その場合には、CAL 301が、ロードされ、初期化されるときに、CAL 301は、それ自体をLECに登録し、またはアタッチし、プロセスが終了するときに、実行すべき、LECのスナップショット・タスクに対してルーチンを提供する。このルーチンは、Bmanにより管理されたバッファ・プールとTx/Rxイーサネット・インターフェースに関連した様々な統計データを収集し、また事後の調査のためにデータをLECのスナップショット・ファイルにダンプすることになる。
CAL 301は、パケットの送信(すなわち、L2 ULUソフトウェア処理)をサポートすることもできる。すなわち、
1.ULU(アップリンク・スケジューラ)は、それ自体をCALMsg 306に登録し、そのようにして、それは、DPAAを経由してパケットを送信することができる。
2.ULUは、CALBufサービスを使用してバッファを割り付ける。
3.ULUは、すべての必要とされるヘッダ(イーサネット/IP/UDP)およびペイロードとともに送信されるべきデータをバッファに入力する。
4.ULUは、CALMsgサービスを使用してDPAAを経由してメッセージを宛先エンティティに対して送信する。
CAL 301は、パケットの受信(すなわち、L2 DLTソフトウェア処理)をサポートすることもできる。すなわち、
1.DLT(ダウンリンク・スケジューラ)は、それ自体をCALMsg 306に登録し、そのようにして、それは、DPAAを経由してパケットを受信することができる。
2.あるデルタT時間(すなわち、1ms)の後に、DLTは、CALMsgサービスを使用してそれに向かうことになっているフレームを読み取る。
3.DLTが読み取るフレームごとに、DLTは、CALBufサービスを使用して、フレームを処理し、またCAL 301またはBman 326に対してバッファをリリースして戻す。
セルを削除することをもたらすすべてのシナリオでは、L2 DLTおよびULUのスレッドは、それらが終了される前に、必要なクリーンアップを実行することになることが、仮定される。クリーンアップの一部として、L2 DLTおよびULUのスレッドは、CAL 301からそれら自体の登録を解除すべきである。登録解除プロセスの一部として、CAL 301は、アプリケーションが獲得している(CALBufサービスを経由して直接に、またはFMAN 330または332によって暗黙のうちに獲得されるかのいずれか)すべてのバッファをリリースすることや、関連するリング・バッファを削除し、またPCDルール(高速パスのレシーバだけについて関連のある)を取り除くことなど、何らかのクリーンアップ作業を実行する必要がある。
ULUおよびDLTは、CALMsgサービスを使用して、CAL 301からそれら自体の登録を解除することができる。
L2 DLTまたはL2 ULUのスレッドが、異常に終了する(例えば、クラッシュする)場合には、CAL 301は、デバッグ・メカニズムを提供することができ、それによってバッファ・プール統計データやTx/Rxイーサネット・インターフェース統計データなど、様々なCALおよびDPAAのリソースは、LECのサービスを経由して、収集され、またダンプされる。
上記の説明は、単に本発明の特定の実施形態についての開示を提供するにすぎず、同じものをそれらだけに限定する目的のために意図されてはいない。したがって、本発明は、上記で説明された実施形態だけに限定されるものではない。もっと正確に言えば、当業者なら、本発明の範囲内に含まれる代替的な実施形態を考えることができることが、認識される。

Claims (26)

  1. 電気通信ネットワークにおいてマルチ・セル・サポートを提供するための装置であって、
    モデム・ボードと、
    前記モデム・ボードに取り付けられたマルチ・コア・プロセッサと
    を備え、
    前記マルチ・コア・プロセッサは複数のプロセッサ・コアを含み、また少なくとも1つのプロセッサ・コアを使用して、制御プレーン機能を実行し残りのプロセッサ・コアを使用して、データ・プレーン機能を実行し前記マルチ・コア・プロセッサは、前記プロセッサ・コアの上で実行されるアプリケーション・ソフトウェアからコア特有の詳細を隠すコア抽象化レイヤを含み前記マルチ・コア・プロセッサは障害分離に対するスーパーバイザ・ソフトウェア・エンティティを含み、
    前記コア抽象化レイヤは
    つまたは複数のハードウェア加速フレーム・マネージャに対してネットワーク構成データと、静的な構文解析分類配信(PCD)ルールとをロードし、また1組の構成ファイルに基づいて前記コア抽象化レイヤのフレームワークをセットアップする初期化モジュールと、
    1つまたは複数のデータ・リンク・レイヤアプリケーションについてのロック・レス・バッファ管理サービスを提供するバッファ・モジュールと、
    別のモデム・ボードへとユーザ・プレーン・データを送信し、または別のモデム・ボードからユーザ・プレーン・データを受信するように、ゼロ・コピーおよびロック・レスのメッセージング・サービスをデータ・リンク・レイヤのアプリケーションに対して提供するメッセージング・モジュールと、
    適切なコアへの入口フレームをルーティングするための、前記フレーム・マネージャによって使用されるべきPCDのルールおよび構成を提供するPCDモジュールと
    ライバ・モジュールにおいてトレースをイネーブルにし、またディスエーブルにするためのトレース能力を提供するトレース・モジュールと
    を備える、装置。
  2. 前記初期化モジュールと、前記バッファ・モジュールと、前記メッセージング・モジュールと、前記PCDモジュールと、前記トレース・モジュールとは、ユーザ−空間の中で動作する、請求項に記載の装置。
  3. 記ドライバ・モジュールは、カーネル−空間の中で動作する、請求項に記載の装置。
  4. 記ドライバ・モジュールは
    ーザ・プレーン・データ配信のために使用されるべき、バッファ・プールとフレーム待ち行列とを含むリソースを管理する構成
    ァイル・オペレーションを経由してユーザ−空間インターフェースを他のコア抽象化レイヤ・モジュールに対して提供する構成であって、前記ファイル・オペレーションがオープン、リリース、初期化のためのi−o−制御、バッファ管理、およびメッセージング・サービスを備える構成
    カーネルからユーザ−空間へのバッファ・マッピングを実行する構成
    ッファ・プールと、レシーバおよびトランスミッタとの統計データを提供する構成および、
    リング・バッファを管理するためのサービスを実装する構成
    のうちの1つ又は複数備える、請求項に記載の装置。
  5. 前記マルチ・コア・プロセッサは、前記電気通信ネットワークにおいて、各セルが、対応するアップリンク・スケジューラと、対応するダウンリンク・スケジューラとを有する、3つのセルにサービスを行うように構成されている、請求項に記載の装置。
  6. 前記マルチ・コア・プロセッサが8つのプロセッサ・コアを有する、請求項1に記載の装置。
  7. 第1のプロセッサ・コアが第1のオペレーティング・システムを実行し、残りのプロセッサ・コアが第2のオペレーティング・システムをそれぞれ実行する、請求項1に記載の装置。
  8. 電気通信ネットワークにおいてマルチ・セル・サポートを提供するための装置であって、
    モデム・ボードと、
    前記モデム・ボードに取り付けられたマルチ・コア・プロセッサと
    を備え、
    前記マルチ・コア・プロセッサは単一のオペレーティング・システム・インスタンスによってサービスされる複数のプロセッサ・コアを含み、単一のパーティションは、その中に含まれる前記プロセッサ・コアを用いて定義され、また前記単一のパーティションを使用して、制御プレーン機能およびデータ・プレーン機能を実行し、前記マルチ・コア・プロセッサは、前記単一のパーティションの中の前記プロセッサ・コアの上で実行されるアプリケーション・ソフトウェアからコア特有の詳細を隠すコア抽象化レイヤを含み、前記マルチ・コア・プロセッサは前記電気通信ネットワークにおける少なくとも3つのセルをサービスし、それぞれのセルは対応するアップリンク・スケジューラおよびダウンリンク・スケジューラを有し、
    前記コア抽象化レイヤは、
    1つまたは複数のハードウェア加速フレーム・マネージャに対してネットワーク構成データと、静的な構文解析分類配信(PCD)ルールとをロードし、また1組の構成ファイルに基づいて前記コア抽象化レイヤのフレームワークをセットアップする初期化モジュールと、
    1つまたは複数のデータ・リンク・レイヤのアプリケーションについてのロック・レス・バッファ管理サービスを提供するバッファ・モジュールと、
    別のボードへとユーザ・プレーン・データを送信し、または別のボードからユーザ・プレーン・データを受信するように、ゼロ・コピーおよびロック・レスのメッセージング・サービスをデータ・リンク・レイヤのアプリケーションに対して提供するメッセージング・モジュールと、
    適切なコアへの入口フレームをルーティングするための、前記フレーム・マネージャによって使用されるべきPCDのルールおよび構成を提供するPCDモジュールと、
    ドライバ・モジュールにおいてトレースをイネーブルにし、またディスエーブルにするためのトレース能力を提供するトレース・モジュールとを備える、装置。
  9. 前記初期化モジュールと、前記バッファ・モジュールと、前記メッセージング・モジュールと、前記PCDモジュールと、前記トレース・モジュールとは、ユーザ−空間の中で動作する、請求項8に記載の装置。
  10. 前記ドライバ・モジュールは、カーネル−空間の中で動作する、請求項8に記載の装置。
  11. 前記ドライバ・モジュールは、
    ユーザ・プレーン・データ配信のために使用されるべき、バッファ・プールとフレーム待ち行列とを含むリソースを管理する構成、
    オープン、リリース、初期化のためのi−o−制御、バッファ管理、およびメッセージング・サービスなどのファイル・オペレーションを経由してユーザ−空間インターフェースを他のコア抽象化レイヤ・モジュールに対して提供する構成、
    カーネルからユーザ−空間へのバッファ・マッピングを実行する構成、
    バッファ・プールと、レシーバおよびトランスミッタとの統計データを提供する構成、および、
    リング・バッファを管理するためのサービスを実装する構成
    のうちの1つ又は複数を備える、請求項10に記載の装置。
  12. 前記マルチ・コア・プロセッサが8つのプロセッサ・コアを有する、請求項8に記載の装置。
  13. 単一のオペレーティング・システム・インスタンスを全ての前記コア上で実行し、前記オペレーティング・システム・インスタンスがPREEMPT_RTパッチを有するSMPリナックスからなる請求項8に記載の装置。
  14. 電気通信ネットワークにおいてマルチ・セル・サポートを提供するための装置であって、
    複数のプロセッサ・コアを含むマルチ・コア・プロセッサを備えるモデム・ボードと、
    アプリケーション・ソフトウェアからコア特有の詳細およびハードウェアを抽象化することにより、および、1つまたは複数のユーザ空間のデータ・リンク・レイヤのアプリケーションに対してロック・レス・ゼロ・コピーのマルチ・コア・バッファ管理サービスを実装するためのハードウェア加速エンジンのバッファ・マネージャを形成するユーザ−空間のフレームワークを提供することにより、前記マルチ・コア・プロセッサ上の1つまたは複数のハードウェア加速エンジンおよびリソースを管理し構成するコア抽象化レイヤのフレームワークとを備え、
    前記コア抽象化レイヤ・フレームワークは、
    1つまたは複数のハードウェア加速フレーム・マネージャ・エンジンに対して1つまたは複数のネットワーク構成データと、静的な構文解析分類配信(PCD)ルールとをロードし、1組の構成ファイルに基づいてパケット・ルーティング・フレームワークをセットアップする初期化モジュールと、
    前記ハードウェア加速エンジンの待ち行列マネージャおよびハードウェア加速フレーム・マネージャ・エンジンをプログラムするアプリケーション・ソフトウェアを可能にして静的な、または、動的なPCDルールおよび適切なコアへの入口フレームをルーティングする構成をサポートするPCDモジュールと、
    前記1つまたは複数のハードウェア加速エンジン、および前記1つまたは複数のハードウェア加速エンジンをデバッグ目的で管理するカーネル−空間のコア抽象化レイヤ・デバイス・ドライバに対するトレースをイネーブルにし、またディスエーブルにするためのトレース能力を提供するトレース・モジュールとを備える、装置。
  15. ネットワーク・インターフェースから前記プロセッサ・コアの内の1つで実行されるアプリケーション・ソフトウェアへとパケットをルーティングする処理動作は、前記ハードウェア加速フレーム管理エンジンへとオフロードされ、パケット・ルーティングの前記処理動作が、パケット・ヘッダの構文解析、パケット分類TCP/UDP、制御プレーンまたはユーザ・プレーン、および特有のコアへのパケット配信の内の1つまたは複数を含む請求項14に記載の装置。
  16. ハードウェア加速エンジン・バッファ・マネージャを使用し、マルチコア、ロック・レス、ゼロ・コピーバッファ管理スキームを実装するユーザ空間フレームワークをさらに備え、多重バッファ要求が前記プロセッサ・コアのいずれかの上で実行される前記アプリケーション・ソフトウェアのいずれかから同時に到達する請求項14に記載の装置。
  17. 前記マルチ・コア・プロセッサ上のハードウェア加速エンジン・リソースを管理し構成すると共に前記アプリケーション・ソフトウェアへの前記ハードウェア加速エンジン・リソースにユーザ空間インターフェースを提供するコア抽象化レイヤ・ハードウェア加速エンジン・ドライバを前記コア抽象化レイヤ・フレームワークがさらに備える請求項14に記載の装置。
  18. 前記初期化モジュールが1つまたは複数のハードウェア加速エンジンの内の第1を構成してIPアドレス、前記アプリケーション・ソフトウェアおよび前記プロセッサ・コアの内の少なくとも1つに基づいて制御プレーン・トラフィックおよびデータ・プレーン・トラフィックに対する1つまたは複数の静的PCDルールをセットアップし、前記アプリケーションが初期化時に実行されている請求項14に記載の装置。
  19. 前記マルチ・コア・プロセッサに含まれる前記モデム・ボードが初期化され動作可能となった後に新しいセルが構成される場合、前記PCDモジュールがさらに、ユーザ・プレーン・トラフィックに対する動的なPCDルールをセットアップする請求項14に記載の装置。
  20. 以前に構成されたセルがリムーブまたはデリートされた場合、前記PCDモジュールがさらに、前記セルと関連するユーザ・プレーン・トラフィックに対する動的なPCDルールを削除する請求項14に記載の装置。
  21. 前記ハードウェア加速フレーム管理エンジンは、分類を経たIPおよびUDPを有するユーザ空間イーサネット・インターフェースに到達するフレームを許可するPCDルールで構成され、目標プロセッサ・コアへとルーティングされる請求項20に記載の装置。
  22. 宛先IPアドレスの全部または一部を特定のコアに対してマッピングするために使用される正確なマッチ配信スキームを許可するPCDルールで前記ハードウェア加速フレーム管理エンジンがプロビジョンされ、マッチしていないフレームが制御プレーン・コアに割り当てられるフレーム・キューに加えられる請求項20に記載の装置。
  23. 前記コア抽象化レイヤ・フレームワークは、カーネル−空間の中で動作する請求項14に記載の装置。
  24. 前記カーネル−空間のコア抽象化レイヤ・デバイス・ドライバ・モジュールは、
    ユーザ・プレーン・データ配信のために使用されるべきバッファ・プールとフレーム待ち行列とを含むハードウェア加速エンジン・リソースを管理する構成、
    1つまたは複数のファイル・オペレーションを経由してユーザ−空間インターフェースを他のコア抽象化レイヤ・デバイス・ドライバ・モジュールに対して提供する構成であって、前記1つまたは複数のファイル・オペレーションがオープン、リリース、初期化のためのi−o−制御、バッファ管理、およびメッセージング・サービスを備える構成、
    カーネルからユーザ−空間へのバッファ・マッピングを提供する構成、
    ハードウェア加速エンジン・バッファ・プールと、レシーバおよびトランスミッタとの統計データを提供する構成、および、
    リング・バッファを管理するためのサービスを実装する構成の内の1つまたは複数の構成を有する請求項14に記載の装置。
  25. 前記マルチ・コア・プロセッサが8つのプロセッサ・コアを有する、請求項14に記載の装置。
  26. 前記マルチ・コア・プロセッサは、前記電気通信ネットワークにおいて、各セルが、対応するアップリンク・スケジューラと、対応するダウンリンク・スケジューラとを有する、3つのセルにサービスを行うように構成されている、請求項14に記載の装置。
JP2013533873A 2010-10-14 2011-09-29 電気通信ネットワーク・アプリケーションのためのコア抽象化レイヤ Expired - Fee Related JP5759006B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/904,322 US20120093047A1 (en) 2010-10-14 2010-10-14 Core abstraction layer for telecommunication network applications
US12/904,322 2010-10-14
PCT/US2011/053804 WO2012050939A1 (en) 2010-10-14 2011-09-29 Core abstraction layer for telecommunication network applications

Publications (2)

Publication Number Publication Date
JP2014501054A JP2014501054A (ja) 2014-01-16
JP5759006B2 true JP5759006B2 (ja) 2015-08-05

Family

ID=45218140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013533873A Expired - Fee Related JP5759006B2 (ja) 2010-10-14 2011-09-29 電気通信ネットワーク・アプリケーションのためのコア抽象化レイヤ

Country Status (6)

Country Link
US (1) US20120093047A1 (ja)
EP (1) EP2628081A1 (ja)
JP (1) JP5759006B2 (ja)
KR (1) KR101636308B1 (ja)
CN (1) CN103154897B (ja)
WO (1) WO2012050939A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110054415A (ko) * 2009-11-17 2011-05-25 삼성전자주식회사 화면 표시 방법 및 장치
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
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
US10212101B2 (en) 2014-01-14 2019-02-19 Nant Holdings Ip, Llc Low level provisioning of network fabrics
US9917728B2 (en) * 2014-01-14 2018-03-13 Nant Holdings Ip, Llc Software-based fabric enablement
US9740513B2 (en) * 2014-06-05 2017-08-22 Futurewei Technologies, Inc. System and method for real time virtualization
CN106533800B (zh) * 2016-12-16 2019-12-06 深圳市有方科技股份有限公司 一种实现终端网络适配的方法及rndis设备
CN106851667B (zh) * 2017-01-19 2019-07-02 京信通信系统(中国)有限公司 一种针对空口协议数据面的数据处理方法及装置
US20190114206A1 (en) * 2017-10-18 2019-04-18 Cisco Technology, Inc. System and method for providing a performance based packet scheduler
CN110753008A (zh) * 2018-07-24 2020-02-04 普天信息技术有限公司 基于dpaa的网络数据处理装置和方法
US11687400B2 (en) * 2018-12-12 2023-06-27 Insitu Inc., A Subsidiary Of The Boeing Company Method and system for controlling auxiliary systems of unmanned system
KR102420481B1 (ko) * 2019-12-10 2022-07-14 디노플러스 (주) 적응형 데이터 계측 가속화 기술을 이용한 저지연 클라우드 서비스제공장치

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002667A (en) * 1995-07-19 1999-12-14 Fujitsu Network Communications, Inc. Minimum guaranteed cell rate method and apparatus
US6175914B1 (en) * 1997-12-17 2001-01-16 Advanced Micro Devices, Inc. Processor including a combined parallel debug and trace port and a serial port
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
US7558472B2 (en) * 2000-08-22 2009-07-07 Tivo Inc. Multimedia signal processing system
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
US6799200B1 (en) * 2000-07-18 2004-09-28 International Business Machines Corporaiton Mechanisms for efficient message passing with copy avoidance in a distributed system
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
US6735620B1 (en) * 2000-07-18 2004-05-11 International Business Machines Corporation Efficient protocol for retransmit logic in reliable zero copy message transport
JP2002050996A (ja) * 2000-07-31 2002-02-15 Sony Corp 整数倍相互関係を有するブロック長を用いて符号化された信号を通信伝送路を介して送信する通信システム
US7096034B2 (en) * 2001-10-01 2006-08-22 Microsoft Corporation System and method for reducing power consumption for wireless communications by mobile devices
JP2003271404A (ja) * 2002-03-19 2003-09-26 Fujitsu Ltd マルチプロセッサシステム
GB2411254B (en) * 2002-11-18 2006-06-28 Advanced Risc Mach Ltd Monitoring control for multi-domain processors
US7810124B2 (en) * 2003-01-28 2010-10-05 Thomson Licensing Robust mode staggercasting fast channel change
US7996839B2 (en) * 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
CN1879389B (zh) * 2003-10-15 2010-08-18 株式会社Ntt都科摩 控制分层通信环境中多个通信层的操作的设备和方法
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
US7474653B2 (en) * 2003-12-05 2009-01-06 Hewlett-Packard Development Company, L.P. Decision cache using multi-key lookup
US7370326B2 (en) * 2004-04-02 2008-05-06 Emulex Design & Manufacturing Corporation Prerequisite-based scheduler
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
US20070113229A1 (en) * 2005-11-16 2007-05-17 Alcatel Thread aware distributed software system for a multi-processor
EP1798897B1 (en) * 2005-12-14 2008-06-18 NTT DoCoMo, Inc. Apparatus and method for determining transmission policies for a plurality of applications of different types
US7562258B2 (en) * 2006-02-09 2009-07-14 Arm Limited Generation of trace elements within a data processing apparatus
EP2005691A4 (en) * 2006-03-28 2013-02-20 Radisys Canada Inc MULTIMEDIA PROCESSING IN PARALLEL MULTI-DATA DATA PROCESSING ARCHITECTURES
CN101071524A (zh) * 2006-05-13 2007-11-14 石河子开发区兆赫科技发展有限责任公司 电网载波集抄系统的actpis中间件及其所构成的电网载波集抄系统
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)
US7493477B2 (en) * 2006-06-30 2009-02-17 Intel Corporation Method and apparatus for disabling a processor core based on a number of executions of an application exceeding a threshold
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)
CN101106490B (zh) * 2006-07-11 2012-01-04 华为技术有限公司 预置流分类器的建立方法及其系统和用户终端
KR20100094973A (ko) * 2007-09-28 2010-08-27 핀-한 호 중첩 변조를 사용하는 무선 데이터 멀티캐스트용의 강건한 시스템 및 방법
US8453121B2 (en) * 2007-10-25 2013-05-28 International Business Machines Corporation Managing the tracing of the execution of a computer program
ES2659870T3 (es) * 2008-04-22 2018-03-19 Nokia Technologies Oy Agrupamiento de células para distribución de información de célula vecina eficiente
US7966519B1 (en) * 2008-04-30 2011-06-21 Hewlett-Packard Development Company, L.P. Reconfiguration in a multi-core processor system with configurable isolation
US8024417B2 (en) * 2008-06-04 2011-09-20 Microsoft Corporation Simple flow control protocol over RDMA
US20100029266A1 (en) * 2008-07-02 2010-02-04 Nokia Corporation System and methods for quality of experience reporting
US8271996B1 (en) * 2008-09-29 2012-09-18 Emc Corporation Event queues
US8191134B1 (en) * 2008-09-29 2012-05-29 Sonicwall, Inc. Lockless distributed IPsec processing
US9203595B2 (en) * 2008-10-22 2015-12-01 Lg Electronics Inc. Efficient initial access system under a multi-carrier combination condition for supporting broadband
KR101546780B1 (ko) * 2008-12-18 2015-08-25 삼성전자주식회사 광대역 무선통신 망에서 서비스 플로우 변경 시 오류 처리를 위한 장치 및 방법
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
US8291430B2 (en) * 2009-07-10 2012-10-16 International Business Machines Corporation Optimizing system performance using spare cores in a virtualized environment
US8737262B2 (en) * 2009-11-24 2014-05-27 Red Hat Israel, Ltd. Zero copy transmission with raw packets
US8675577B2 (en) * 2010-12-20 2014-03-18 Intel Corporation Signaling techniques for a multimedia-aware radio and network adaptation

Also Published As

Publication number Publication date
WO2012050939A1 (en) 2012-04-19
CN103154897A (zh) 2013-06-12
KR101636308B1 (ko) 2016-07-05
CN103154897B (zh) 2016-08-03
JP2014501054A (ja) 2014-01-16
KR20130056333A (ko) 2013-05-29
EP2628081A1 (en) 2013-08-21
US20120093047A1 (en) 2012-04-19

Similar Documents

Publication Publication Date Title
JP5759006B2 (ja) 電気通信ネットワーク・アプリケーションのためのコア抽象化レイヤ
KR101549422B1 (ko) 통신 네트워크 애플리케이션들을 위한 락-리스 및 제로 카피 메시징 스킴
JP5726320B2 (ja) 単一のモデム・ボードにおける改善されたマルチセル・サポートのための方法およびシステム
JP5671150B2 (ja) 電気通信ネットワーク・アプリケーションのためのロックレス・バッファ管理スキーム
US8730790B2 (en) Method and system for cell recovery in telecommunication networks
CN110875823B (zh) 一种业务面的数据处理系统及方法
CN116266141A (zh) 用于使用负载平衡指派和检查反重放序列号的方法和装置
Choi et al. An extensible design of a load-aware virtual router monitor in user space

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140522

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140822

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140829

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141125

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150604

R150 Certificate of patent or registration of utility model

Ref document number: 5759006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees