JP2007500474A - サービス品質保証及び選択的ブロードキャストを提供するプロセッサ間通信プロトコル - Google Patents

サービス品質保証及び選択的ブロードキャストを提供するプロセッサ間通信プロトコル Download PDF

Info

Publication number
JP2007500474A
JP2007500474A JP2006521897A JP2006521897A JP2007500474A JP 2007500474 A JP2007500474 A JP 2007500474A JP 2006521897 A JP2006521897 A JP 2006521897A JP 2006521897 A JP2006521897 A JP 2006521897A JP 2007500474 A JP2007500474 A JP 2007500474A
Authority
JP
Japan
Prior art keywords
ipc
component
client
channel
message
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.)
Pending
Application number
JP2006521897A
Other languages
English (en)
Inventor
カワンド、シャーベル
リウ、ビン
カワンド、ジーン
ダブリュ. ミラー、ジアンピン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JP2007500474A publication Critical patent/JP2007500474A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet 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/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

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)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

プロセッサ間通信(IPC)プロトコル・ネットワーク(100)は、1つ以上のIPCクライアント(102)と、IPCサーバ(108)とを備える。IPCプロトコルにより、IPCクライアント(102)がIPCサーバ(108)に登録することが可能となる。これにより、各々依存するソフトウェア・アーキテクチャ、オペレーティングシステム、ハードウェア等に対して何ら制約を課すことなく、両者が自在に通信するための手段が提供される。本発明の一実施形態のIPCプロトコルにより、コンポーネントは異なるサービス品質(QoS)を動的に要求することが可能となる。別の実施形態では、IPCノードは送信者により選択されるノードに対しメッセージを選択的にブロードキャストすることが可能である。

Description

本発明は電子工学の分野に関する。より詳細には、本発明は、サービス品質(QoS)保証及び選択的ブロードキャスト機能を提供するプロセッサ間通信(IPC)プロトコル/ネットワークに関する。
大抵の電子工学システムは、ハードウェア及びソフトウェア等、システムを形成する多数のネットワーク化された要素(コンポーネント)を備える。大抵の電子工学システムには、ネットワーク化された要素を形成する異なるコンポーネント間の通信や、異なるネットワーク化された要素自身の間の通信を担う層が存在する。この層は、通常、プロセッサ間通信(IPC)層と呼ばれる。
最近の数年において、プロセッサ間通信を処理するために幾つかのプロトコルが導入されている。IPC製品の一例は、ホスト−PCIブリッジ、動的ランダム・アクセス・メモリ(DRAM)コントローラ、及びデータ・パスと、アクセラレーテッド・グラフィックス・ポート(AGP)インタフェースとを統合する、PCI AGPコントローラ(PAC)である。IPC製品の別の例は、OMAP(登録商標)プラットフォームである。いずれのプラットフォームにおいても、低位のコンポーネント、即ち、チャネルレベル(ハードウェアレベル)における設計の柔軟性は提供されていない。
例えば、PACプラットフォームは非公開のアーキテクチャであり、オペレーティングシステムのTAPI層に埋め込まれているため、開発者がIPCコードにアクセスすることは不可能である。したがって、それらのプラットフォームはコンポーネントレベルまで拡張されないため、IPCリソースの動的割り当てや、サービス性能のコンポーネントによる判定は不可能であり、多ノード経路制御は提供されない。
実時間処理に関する主な問題のうちの1つは、異なる移動体アプリケーション(MA)上で動作する全ての参加ソフトウェアコンポーネントに対し、サービス品質(QoS)保証が必要なことである。例えば、携帯無線通信デバイスが、モトローラ(Motorola)社のiDEN(商標)広域ローカル・エリア・ネットワーク(WLAN)ベースバンドMAと共に、PCS SYMBIAN(登録商標)系アプリケーション・プロセッサを備える場合がある。一般に、ソフトウェア・コンポーネントは、QoSや、QoSが如何にして保証され得るかを認識しない。従来技術システムにおいては、一定レベルのハードウェア性能保証を必要とするコンポーネントは、異なるハードウェア・プラットフォームに関して異なって調整される必要がある。密結合システムの個々のコンポーネントに一定のハードウェア性能レベル(例えば、一定量のデータ帯域幅)を保証することが必要な場合、通常、IPCをプラットフォーム固有とするような手法によりQoS要件を調整する必要がある。当然のことながら、このことはデバイスの移植性(再利用)において大きな問題である。
従来技術のIPCシステムにより経験される別の問題は、事前割り当て(pre−assignment)に関する問題である。事前割り当てにおいては、IPCにてデータを送受信するために編集する(compile)ことが必要なデータ帯域幅を、各ソフトウェア・コンポーネントに予め認識させる。IPCチャネルの事前割り当てにおいては、IPCにおける同じ正確なチャネル割り当てを全てのMAに所有させるが、これは現代の市場において所望される解決法ではない。また、事前割り当てにおいてはコンポーネントにチャネル及びそのコンポーネントのリソースをブロックさせるが、コンポーネントがチャネル・リソースを使用していない場合、さらなる非効率を生じる。したがって、当該技術分野においては、従来技術の欠点のうちの幾つかを解決し得るIPCプロトコルが必要である。
本発明の一実施形態においては、IPCネットワークに接続されたコンポーネントは異なるQoSレベルを動的に要求することが可能である。QoSは優先度及びデータレートに関して保証されるが、保証されるパラメータはそれらに限定されず、QoS手法により他のQoS因子を考慮に含めることも可能である。IPCにおいてQoSを保証することの利点は、プラットフォームからのアーキテクチャ抽象化や、異なるMA間におけるコンポーネント移植性である。
本発明の選択的ブロードキャスト機能により、IPCノードがメッセージを送信し、IPCネットワークに接続されたIPCノードを選択することが可能となる。送信者により選択されたノードに対しIPCサーバがブロードキャスト・メッセージを送信することが可能であるように、ネットワークはフィルタ・テーブルを使用する。また、IPCノードにより、IPCリンクを介してフィルタ・テーブルが動的に更新されることも可能である。本発明の一実施形態においては、選択的ブロードキャスト機能により動的な方法が可能となり、この方法により、ソフトウェア・コンポーネントは異なるMA上の他のソフトウェア・コンポーネントと通信することが可能である。これにより、一部の従来技術システムの場合のように専用のIPC帯域幅及びチャネルからなる固定された組にMAを構成することは、不要となる。また、IPCスタック及びIPCスタックに接続されたハードウェアは、コンポーネントが必要に従い異なるリンクを選択して通信することが可能であるように抽象化される。
最初にIPCネットワークを説明し、続いて本発明のQoS及び選択的ブロードキャスト機能を説明する。
本発明のIPCにより、IPCネットワーク内で動作する異なるプロセッサが相互に通信するために必要なサポートが提供される。例えば、アプリケーション・プロセッサ(AP)及びベースバンド・プロセッサ(BP)を備える無線通信デバイス用のデュアル・プロセッサ無線アーキテクチャにおいては、本発明のIPCにより、効率的な手法にてプロセッサが相互に通信するために必要なサポートが提供される。本発明のIPCにおいては、このサポートは、AP又はBPの設計に対して何ら制約を課すことなく提供される。
本発明のIPCにより、プロセッサ間通信スタックとして本発明のIPCを採用する任意のプロセッサは、共通のオペレーティングシステム及びメモリを共有する同じプロセッサ・コア上で2つのプロセッサが実際に動作しているように共存して動作することが可能となる。基準となる通信デバイスにおいて複数のプロセッサを用いる場合、本発明のIPCにより、異なるプロセッサ間において信頼性のある通信が提供される。
IPCハードウェアは、異なるプロセッサをIPCネットワークへ接続する物理接続を提供する。本発明の一実施形態では、異なるホスト間で非同期にデータ・パケットが輸送される。IPCネットワークに接続されたプロセッサは、静的又は動的に割り当てられた自身の物理アドレス及び論理アドレスを有する(例えば、IPCアドレス)。また、本発明の一実施形態ではデータ・パケットはIPCネットワーク内の任意の方向へ流れ得るため、パケットは、そのパケットが到達することを試みるプロセッサの宛先アドレスを有する。また、パケットは公知の巡回冗長検査(CRC)手法を用いて誤りを検査される。本発明のIPCネットワークのネットワーク・アクティビティは、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)ネットワーク等、IPトランスポート層を用いるインターネットのネットワークにおいて見出されるネットワーク・アクティビティと何らかの類似性を有する場合がある。しかしながら、本発明のIPCネットワークは、TCP/IPネットワークにおけるように、ゲートウェイを備えた小さなネットワークに分割されない。
ここで図1を参照する。図1には、本発明の一実施形態によるIPCネットワーク100を示す。IPCネットワーク100は、複数のIPCクライアント102〜106と、IPCサーバ108とを備える。図の例に示すように、IPCサーバ108は共有メモリ110、ユニバーサル非同期受信機/発信機(UART)112及びユニバーサル・シリアル・バス(USB)114等、異なるIPC物理リンクを用い、IPCクライアント102〜106に接続されている。なお、本発明のIPCにおいては、IPCクライアント102〜106は現在のIPCサーバ108と交渉(negotiate)し、役割を交換することが可能である。IPCクライアント102〜106がIPCサーバとなるよう交渉し、新たなIPCサーバとなる場合、残りのIPCクライアントの全ては、IPCサーバの変更によりサーバのIPアドレスを変更するように指示される。
図2には、本発明の一実施形態によるIPCサーバ108(又はIPCクライアント102〜106)のIPCスタック200を示す。IPCスタック200は、オペレーティングシステム(OS)の下で統合され、かつ、コンポーネント・トラフィックに関するプロセッサ間通信の必要のサポートを提供するように設計されている。IPCスタックは、次の3つの主な層から構成される。
(1)IPCプレゼンテーション・マネージャ(202):この層は、異なるシステム・コンポーネント(例えば、ソフトウェア・スレッド)間において異なるデータ型を翻訳するために用いられる。
(2)IPCセッション・マネージャ(204):この層は、IPCスタックと全てのシステム・コンポーネントとの間の全ての着信/発信IPCトラフィックに対する中央リポジトリである。IPCセッション・マネージャ204は、参加IPCコンポーネントに対するコンポーネントIDの割り当て、IPCデータのカプセル化が必要か否かの決定、IPCデータの経路制御、IPCトラフィックの中断、IPCプロセッサのプレースホルダ(place holder)、IPCアドレスの提供、IPCクライアントの割り当て及び認証等、幾つかの機能を有する。
IPCトランスポート層(208):IPCセッション・マネージャ(層)204内に存在し、異なるプロセッサ間においてIPCデータを輸送するための非常に基本的な巡回冗長検査を提供する。加えて、IPCトランスポート層208は、IPCメッセージのIPCネットワーク100における最終宛先までの経路制御を担う。トランスポート層の経路制御機能は、IPCサーバにおいてのみ有効である。
IPCルータ・ブロック(210):IPCデータを宛先コンポーネント(図示せず)へ輸送する。着信のIPCメッセージは、特に、発信者コンポーネントIDと、「オーディオおよびモデム(Audio and Modem)」等のIPCメッセージ・オプコードとを有する。なお、本発明の一実施形態においては、IPCネットワークに接続された「オーディオおよびモデム」等、各コンポーネント/ソフトウェア・スレッド(例えば、図5の502を参照)に対し、ユニークなオプコードが割り当てられる。IPCセッション・マネージャ204はルータ・ブロック210により、正しいコンポーネントに対しIPCデータを送信する。
(3)デバイス・インタフェース層(206):IPC物理チャネル−論理IPCチャネルの管理を担う。主な機能は、スタックIPCがハードウェアから独立するようにIPCハードウェアを完全に抽象化することである。デバイス・インタフェース層206は、全てのIPC論理チャネルをサポートするように、IPCリンク下の物理帯域幅を管理する。着信パスにおいて、デバイス・インタフェース層206は異なる物理チャネル110〜114からデータを選定し、そのデータをIPCスタックの残部分へ渡す。発信パスにおいては、デバイス・インタフェース層206はデータを適切な物理チャネル上で送信することにより、IPC論理チャネルのデータ負荷を管理する。また、デバイス・インタフェース層206は、IPCハードウェアに対しIPCパケットを送信する前に、同じIPCチャネルに属するIPCパケットの連結を処理する。チャネル要件は、IPCセッション・マネージャ204とIPCデバイス・インタフェース層206との間において、予め交渉される。デバイス・インタフェース層206がハードウェア・ポートを提供し、ハードウェア・ポートがIPCクライアント102〜106に対するデバイス・インタフェースを提供する。
図3には、IPCコンポーネントID割り当てルーチンを示す。工程302にて、IPC通信に参加することを所望する新たなコンポーネントは、最初に工程302にてIPCセッション・マネージャ(例えば、セッション・マネージャ204等)にIPC識別番号(ID)を要求する必要がある。続いて、ローカル・セッション・マネージャ(例えば、そのコンポーネントが接続されているクライアントに存在するセッション・マネージャ)はIPCサーバのセッション・マネージャに新たなIPCコンポーネントをアラートし、工程304にて、コンポーネントID割り当てが提供される。本発明の一実施形態では、コンポーネントIDは動的であり、セッション・マネージャ(例えば、サーバのセッション・マネージャ)により再割当されることが可能である。大抵の場合、主なIPCサーバの位置は主AP上である。各IPCノードはユニークなIPCノードIDを有し、セッション・マネージャは各参加IPCノードに対する以下の情報を自身のデータベースに保持する。
・IPCノード型:例えば、特定のBP又はAP、無線ローカル・エリア・ネットワーク(WLA)、AP等。
・IPCアドレス:IPCノードのIPCアドレス。
・データ型:IPCノードのデータ型。
・オプコードのリスト:コンポーネントにサブスクライブ(subscribe)された全てのIPCメッセージのオプコードのリスト。
・コンポーネントID:全てのコンポーネントIDのリスト。
ここで図4を参照する。図4には、IPCスタックと共に、全ての主なIPCテーブルを示す。動的経路制御テーブル402は、ノード型、IPCアドレス/ポート番号情報、データ型、及びサブスクリプション(subscription)・リストを含む。コンポーネント経路制御テーブル404は、オプコード情報と各特定のオプコードにサブスクライブした全てのコンポーネントとをリンクする情報を含む。最後に、チャネル・リソース・テーブル406は、各チャネルIDと物理チャネルIDのリストとのリンクを含む。
図5には、本発明の一実施形態においてIPCスタックがソフトウェア・スレッド等(例えば、オーディオ等)のコンポーネントにIPCチャネルを提供する手法のブロック図を示す。最初に、工程504にて、コンポーネント502がIPCチャネルを要求する。工程506にて、図5に示すセッション・マネージャは定義済みAPIを用い、コンポーネントの要求をデバイス層と交渉する。続いて、デバイス層(デバイス・インタフェース)はデータ・チャネル508等のハードウェア・リソースを要求する。この要求に応答して、工程510にて、図5に示すセッション・マネージャは要求者にIPCチャネルを許可する。次に、コンポーネント502は割り当てられたチャネル508上でデータを送信する。続いて、デバイス層はIPCネットワークへデータを転送する。論理チャネルの物理チャネルIDへのマッピングは、IPCデバイス・インタフェースの機能である。
ここで図6を参照する。IPCクライアント初期化の第1の工程は、IPCクライアント602とIPCサーバ604との間において登録要求を送信することである(工程606)。続いて、工程608にて、IPCサーバ604はIPCクライアント602による要求を認証する。続いて、IPCクライアントに対しIPCアドレスが送信され、工程610にて、登録が完了される。工程612にて、IPCクライアントのセッション・マネージャはIPCサーバに対し動的経路制御テーブルのコピーを送信する。
図7には、IPCクライアント初期化処理において実行される工程をより詳細に示す。工程702にて、クライアント・セッション・マネージャ(図には、セッション(クライアント)、として示す)は、IPCサーバのセッション・マネージャ(図には、セッション(サーバ)、として示す)に対し、構成要求を送信する。工程704にて、IPCサーバのセッション・マネージャにより認証が要求される。続いて、工程706にて、IPCクライアントとIPCサーバとの間の認証が実行される。
構成要求のパラメータにはノード型及びデータ型が含まれる。工程702の構成要求に応答して、セッション・サーバは要求者にIPCアドレスを割り当てる。また、要求者に対する動的経路制御テーブルが存在しない場合、要求者に対する動的経路制御テーブルも設定する。続いて、工程708にて、要求者に構成表示を送信する。構成表示のパラメータには、サーバのIPCアドレスと、新たに割り当てられたクライアントのIPCアドレスとが含まれる。
構成表示の受信に応答して、セッション・クライアントに接続されたコンポーネントはクライアントのセッション・マネージャに制御/データを要求することが可能である。続いて、工程710にて、セッション・クライアントはセッション・サーバに対し構成表示確認メッセージを送信する。「構成表示確認」メッセージにはパラメータは存在しない。工程710にて構成表示確認メッセージを受信すると、セッション・サーバは新たに構成されたセッション・クライアントに対しIPCストリームを初期化することが可能である。続いて、工程712,714において、セッション・サーバはセッション・クライアントに対し構成更新メッセージを送信する。これにより、図7に示すセッション・クライアントの両方は、それぞれの動的経路制御テーブル(図示せず)を更新し、工程716,718にて、構成更新確認メッセージをセッション・サーバに対し送信する。構成更新確認メッセージを受信することにより、セッション・サーバは全てのIPC参加者が更新されたことを確認する。
IPCセッション・マネージャは、発信元コンポーネントID、宛先ID、チャネルID、及びBP又はAPの型を含むデータ形式にてパケットを受信する。宛先IDが挿入されていない場合、IPCセッション・マネージャは宛先コンポーネントIDを追加する。また、IPCセッション・マネージャはIPCアドレスも挿入する。受信したメッセージ・オプコードに基づき宛先IDを発見するのは、IPCセッション・マネージャである。宛先IDは参照テーブルに基づく。この参照テーブルは、コンポーネントが新たなIPCメッセージ・オプコードにサブスクライブする(例えば、オーディオ・コンポーネントはIPCセッション・マネージャに要求を送信することにより、オーディオ・メッセージにサブスクライブする)毎に動的に更新される。
図8には、本発明の一実施形態によるコンポーネントと、そのIPCセッション・マネージャとの間の一般的な宛先ID発見シーケンスにおけるイベントのシーケンスを示す。工程802にて、コンポーネントは、その発信元ID、宛先BP又はAPの型、並びにヘッダ及びデータを含むIPCデータを送信する(宛先IDは送信しない)。工程804にて、対応する動的経路制御テーブルを参照して正しい宛先アドレスを見出すため、IPCセッション・マネージャはIPCデータ・ヘッダ・オプコードと、宛先BP又はAPの型とを参照する。工程806にて、IPCセッション・マネージャはコンポーネントのIPCアドレスを挿入し、デバイス層へ送信する。
図9には、IPCコンポーネント初期化において実行される通常の工程を示す。図9に示すIPCサーバによりBPが構成されると、コンポーネント902等のコンポーネントは異なるサービスにサブスクライブすることが可能となる。工程904にて、コンポーネントはオーディオ、ビデオ等の機能をサブスクライブする。続いて、コンポーネントID作成(まだIDが割り当てられていない場合)と、特定のIPCアドレスに対する動的経路制御テーブルの作成又は更新とのため、コンポーネント・サブスクリプション情報がIPCセッション・マネージャに対し送信される(工程906)。工程906からの情報により、工程908にて、セッション・マネージャはIPCサーバを更新する。工程912にて、IPCサーバはIPCクライアントに対し動的経路制御テーブルの確認を送信する。サーバがアラートされると、工程910にて、新たな動的経路制御テーブル更新が全ての参加プロセッサに対しブロードキャストされる。
図10には、コンポーネント(クライアント)1002、セッション(クライアント)1004、及びセッション(サーバ)1006の間における、同じコンポーネント初期化処理を示す。セッション(クライアント)1004は、クライアント・セッション・マネージャとしても周知であり、セッション(サーバ)1006は、サーバ・セッション・マネージャとしても周知である。工程1008にて、コンポーネント(クライアント)1002はコンポーネント構成要求を送信する。この要求に応答して、クライアント・セッション・マネージャ1004は、そのデバイス層(図示せず)と論理チャネルを交渉する。また、クライアント・セッション・マネージャ1004はコンポーネントIDを割り当て、その動的経路制御テーブル(図示せず)に新たなオプコードのリストを追加する。工程1010にて、クライアント・セッション・マネージャ1004は、パラメータとしてコンポーネントID及びチャネルIDを含む構成応答を送信する。この構成応答に応答して、コンポーネント(クライアント)1002は、そのID及びチャネルIDをクライアントのセッション・マネージャ1004から受信する。
クライアント・セッション・マネージャ1004は、工程1010にて工程1008の構成要求に対し応答すると、セッション・サーバ1006に対し構成更新要求を送信する(工程1012)。構成更新要求のパラメータは、動的経路制御テーブルにおいてなされた任意の新たな変更である。セッション・マネージャは、そのIPCアドレスに対する動的経路制御テーブルを更新する。続いて、サーバ・セッション・マネージャ1006は、工程1014にてそのIPCクライアントに対し構成更新表示を送信し、工程1016にて全てのIPCクライアントに対し構成更新を送信する。サーバのセッション・マネージャ1006は、送信された変更によりIPCサーバがその経路制御テーブルを更新したことを確認する。
パラメータとして動的経路制御テーブルを含む、工程1016の構成更新メッセージにおいて、セッション・サーバ1006は動的経路制御テーブルを更新し、工程1018にて構成更新確認メッセージを送信する。続いて、セッション・サーバ1006は全てのIPC参加者が更新されたことを確認する。
IPCセッション・マネージャは、着信及び発信IPCパケットの経路制御パスを決定する。発信パケットの経路は、コンポーネントのIPCアドレスにより決定される。宛先アドレスがローカル・プロセッサのアドレスであった場合、そのセッション・マネージャ内においてオペレーティングシステム(OS)に対するIPCのマッピングが実行される。宛先アドレスがローカルIPCクライアントであった場合、さらなる処理(例えば、カプセル化)のため、パケットはIPCスタックに対し送信される。なお、宛先コンポーネントがIPCパケットを送信するコンポーネントと同じプロセッサに存在する場合、カプセル化は不要であり、パケットは通常のOSメッセージ呼出(例えば、MICROSOFT(登録商標)メッセージ・キュー等)を介して渡される。この手法においては、コンポーネントはその入力方式の修正について考慮する必要はなく、メッセージ・ポスト方法をOS固有設計からIPC呼出へ変更することのみが必要である。
着信パケットにおいては、メッセージの宛先アドレスがIPCサーバのアドレスと等しくない場合、着信パケットは適正なIPCクライアントへと経路制御される。着信パケットの経路制御はIPCサーバのセッション・マネージャにより扱われる。メッセージの宛先アドレスがIPCサーバのアドレスと等しい場合、そのメッセージは、コンポーネント宛先IDが有効なコンポーネントIDに設定されているか否か、又は0XFFに設定されているか否かに応じて、1つ以上の正しいコンポーネントに対し転送される。
IPCルータ・ブロックはIPCデータを宛先コンポーネントに輸送する。着信IPCメッセージは、特に、発信者コンポーネントIDと、オーディオ、モデム等に対するオプコード等、IPCメッセージ・オプコードとを有する。IPCセッション・マネージャは、コンポーネント経路制御テーブルにより、IPCデータを1つ以上の正しいコンポーネントに対し送信する。動的経路制御テーブル及びコンポーネント経路制御テーブルの両方は、IPCサーバ/クライアントにより更新される。
起動中、各コンポーネントは自身をセッション・マネージャに登録し、IPCコンポーネントIDを取得する必要がある。加えて、各コンポーネントは、オーディオ、モデム等の着信IPCメッセージにサブスクライブする必要もある。この情報は、IPCセッション・マネージャによる使用のため、コンポーネント経路制御テーブルに記憶される。
図11に示すように、工程1104にてコンポーネント1102がIPCセッション・マネージャに対しデータ要求を送信するとき、宛先IPCノード(例えば、BP)に対し検査が行われる。IPCノードがIPCメッセージ・オプコードをサポートしない場合、エラー応答がコンポーネント1102に返される。エラー応答に加えて、IPCセッション・マネージャは、その特定のオプコードを受信することが可能な全てのIPCノードの更新を返す。コンポーネントがメッセージを再送信するIPCノードは、コンポーネントにより決定される。IPCセッション・マネージャ1106は、宛先コンポーネントがIPCネットワーク内に存在するがローカル・プロセッサ内には存在しないと判定した場合、IPCネットワークにてデータを送信する前に、IPCヘッダ情報を用いてデータをカプセル化する。
図12には、本発明の一実施形態によるIPCデータ・ヘッダ1202を示す。ヘッダは、IPCルータにより提供される発信元IPCアドレス、宛先IPCアドレス、発信元ポート及び宛先ポートと、IPCトランスポートにより提供される長さ及びチェックサム情報と、セッション・マネージャにより提供される発信元IPCコンポーネント及び宛先IPCコンポーネントとを含む。メッセージ・オプコード、メッセージ長さ及びIPCデータは、コンポーネント1204により提供される。
図13には、本発明の一実施形態による典型的なIPCデータ要求を示す。工程1302にて、コンポーネントが更新要求を送信する。コンポーネント更新パラメータは、ノード型及びオプコードを含む。コンポーネントは宛先オプコードをサポートするノード型を調査する。ノード型が0XFFに等しい場合、セッション・マネージャは全てのIPC参加者の全てのノード・テーブルに対しコンポーネント情報を送信する。オプコード・フィールドが0XFFに等しい場合、セッション・マネージャはコンポーネントに対し、指定されたノード型に属するオプコードのリストを送信する。また、オプコードが特定の値である場合、セッション・マネージャはコンポーネントに対し、その特定のオプコードをノード型がサポートするか否かに対応する真偽値を送信する。
工程1304にて、コンポーネントに対しコンポーネント更新表示が送信される。ノード型が0XFFに等しい場合、ノード・テーブルがコンポーネントに返される。オプコード・フィールドが0XFFに等しい場合、オプコードのリストがコンポーネントに返される。しかしながら、オプコードが特定の値である場合、真偽メッセージが返される。工程1306にて、コンポーネント・データ要求が行われる。コンポーネント・データ要求のパラメータは、ノード型、IPCメッセージ・オプコード、IPCメッセージ・データ、チャネルID及びコンポーネントIDを含む。コンポーネント・データ要求において、セッション・マネージャはノード型を検査し、オプコードがサポートされるか否かを判定する。ノード型がオプコードをサポートしない場合、工程1308にてコンポーネント更新表示が送信される。しかしながら、ノード型がオプコードをサポートする場合、工程1310にてデバイス層に対しデータ要求が送信される。データ要求パラメータは、IPCメッセージ、チャネルID及びIPCヘッダを含む。
デバイス層はチャネルIDに基づき、データ要求メッセージの送信をスケジューリングする。デバイス層はポート番号ヘッダ情報に基づき、IPCハードウェアを選択する。データがコミットされると、工程1312にて、セッション・マネージャに対しデータ確認メッセージが送信される。工程1314にて、セッション・マネージャはコンポーネントに対しコンポーネント・データ確認メッセージを送信する。コンポーネントは、さらなるIPCメッセージを送信する前に、確認を待機することが可能である。データ確認が受信されると、コンポーネントは次のIPCメッセージを送信することが可能である。
工程1316にて、デバイス層はIPCメッセージ・データ及びIPCヘッダを含むデータ表示メッセージを送信する。セッション・マネージャはメッセージの宛先IPCヘッダを検査し、ローカルIPCアドレスと異なる場合、そのメッセージを正しいIPCノードに送信する(経路制御する)。工程1310にて、セッション・マネージャは予約済みチャネルIDを用い、デバイス層に対しデータ要求を送信する。セッション・マネージャは宛先コンポーネントIDを検査し、0XFFに等しい場合、そのオプコードにサブスクライブした全てのコンポーネントに、そのメッセージを経路制御する。工程1318にて、セッション・マネージャはコンポーネント・データ表示メッセージを送信し、コンポーネントはIPCデータを受信する。
IPCスタックは、全ての参加IPCノードの間における通信のため、予約済み制御チャネルを用いる。起動時、このリンクを用いて、IPCサーバのセッション・マネージャはIPCクライアントにメッセージをブロードキャストし、反対に、IPCクライアントはIPCサーバのセッション・マネージャにメッセージをブロードキャストする。通常の動作中、この制御チャネルは、全てのAP及びBPの間において制御情報を搬送するために用いられる。
図14には、IPCスタックとIPCハードウェアとの間に存在する制御チャネル1402〜1406を示す。異なるIPCハードウェア間においてデータを送信するとき、データ・パケット1410と共に制御チャネル情報1408も送信される。IPCクライアントは最初にIPC制御チャネル上で構成要求をブロードキャストする。IPCサーバはブロードキャストを受信し、そのクライアントに対するIPCアドレスにより応答する。このIPCアドレスは、その特定のプロセッサ(AP又はBP)に対する動的経路制御テーブルに関連付けられる。
[IPCアプリケーション・プログラム・インタフェース(API)]
本発明のIPCプロトコルのAPIのうちの一部を以下に挙げる。
1)コンポーネント・インタフェースからIPCセッション・マネージャへ
CreateComponentInst():
IPCセッション・マネージャにコンポーネント・データベースを作成する。コンポーネント・データ型(ビッグ・エンディアンかリトル・エンディアンか)及びメッセージ・オプコードに対するサブスクリプション等の情報は、IPCアドレスに属する動的データ経路制御テーブルにおいて用いられる。
OpenChannelKeep():
IPCチャネルを開き、利用可能な場合、ChannelGrant()を発行する。このチャネルはCloseChannel()が発行されるまで予約される。コンポーネントはIPCセッション・マネージャに対しQoS要求を送信する。まだコンポーネントIDが割り当てられていない場合、IPCチャネルはコンポーネントIDを割り当てる(例えば、ChannelGrant())。
OpenChannel():
IPCチャネルを開き、利用可能な場合、ChannelGrant()を発行する。パラメータは、OpenChannelKeep()にて原始的に用いられるパラメータと同じである。
OpenChannelWThru():
IPCチャネルを開き、利用可能な場合、ChannelGrant()を発行する。これは、このチャネル上でカプセル化が無効とされることを示すライト・スルー・チャネル(write thru channel)の要求である(例えば、非UDP ATコマンド)。
CloseChannel():
IPCチャネルを閉じることを要求する。もはやコンポーネントはチャネルを必要としない。続いてリソースが解放される。
ChannelGrant():
チャネルが要求者に対し許可される。まだチャネルIDが割り当てられていない場合、IPCセッション・マネージャはチャネルIDを割り当てる。
ChannelError():
チャネル誤りが発生。チャネルは閉じられ、要求者に通知される。
ChannelDataIndication():
チャネル上のデータが配信されることが要求者にアラートされる。このメッセージは、IPCプレゼンテーション・マネージャにより対象のコンポーネントに対し送信される。これには制御チャネル・データも含まれる。
DataChannelRequest():
要求者は開かれたチャネル上でデータを送信することを所望する。これには制御チャネル・データも含まれる。
ChannelClose():
IPCチャネルを閉じることを要求する。チャネル無効化タイマの期限が経過し、タイムアウトに関連するチャネルが閉じられる。チャネル誤りによることも可能である。
2)IPCセッション・マネージャからIPCデバイス・インタフェースへ/IPCデバイス・インタフェースからIPCセッション・マネージャへ
OpenChannel():
論理IPCチャネルを開き、利用可能な場合、ChannelGrant()を発行する。IPCセッション・マネージャはIPCデバイス・インタフェース・マネージャに対しチャネル優先度要求を送信する。
CloseChannel():
IPC論理チャネルを閉じることを要求する。コンポーネントは、もはやチャネルを必要としないことを決定する。
ChannelGrant():
論理チャネルが要求者に対し許可される。
ChannelError():
チャネル誤りが発生(例えば、着信データにおけるCRC不良、又は物理チャネル不良)。
ChannelDataIndication():
チャネル上のデータが配信されることが要求者にアラートされる。
DataChannelRequest():
要求者は論理チャネル上でデータを送信することを所望する。
ChannelClose():
IPCチャネルを閉じることを要求する。チャネル無効化タイマの期限が経過し、タイムアウトに関連するチャネルが閉じられる。チャネル誤りによることも可能である。
3)IPCセッション・マネージャからIPCプレゼンテーション・マネージャへ
ChannelDataIndication():
チャネル上のデータが配信されることが要求者にアラートされる。この情報は、正しいデータ・フォーマットにより対象のコンポーネントに対し転送される。
4)IPCハードウェア/IPCスタック・インタフェース
OpenChannel():
物理IPCチャネルを開き、利用可能な場合、ChannelGrant()を発行する。IPCセッション・マネージャはIPCハードウェアに対しチャネル優先度要求を送信する。
CloseChannel():
IPC物理チャネルを閉じることを要求する。もはやコンポーネントはチャネルを必要としない。
ChannelGrant():
物理チャネルが要求者に対し許可される。
ChannelError():
チャネル誤りが発生(例えば、着信データにおけるCRC不良、又は物理チャネル不良)。
ChannelDataIndication():
チャネル上のデータが配信されることが要求者にアラートされる。
DataChannelRequest():
要求者は物理チャネル上でデータを送信することを所望する。
ChannelClose():
IPCチャネルを閉じることを要求する。チャネル無効化タイマの期限が経過し、タイムアウトに関連するチャネルが閉じられる。チャネル誤りによることも可能である。
図15には、無線通信デバイス(例えば、セルラー電話機等)1500等の電子デバイスのブロック図を示す。無線通信デバイス1500は、IPCネットワークを用いて相互に通信するベースバンド・プロセッサ(BP)1502及びアプリケーション・プロセッサ(AP)1504を備える。本発明のIPCプロトコルにより、通信デバイス等、システム内の多プロセッサ間における通信が提供される。IPCにより、移動体アプリケーション(MA)クライアント(例えば、iDEN(商標)WLAN)がパーソナル通信システム(PCS)アプリケーション等のMAサーバに登録することが可能となる。これにより、各々自身のMA内部に依存するソフトウェア・アーキテクチャ、オペレーティングシステム、ハードウェア等に対して何ら制約を課すことなく、2つのMAが自在に通信するための手段が提供される。
ここで図16を参照する。図16には、ソフトウェア・スレッド等の3つのコンポーネント1602,1604,1606と、それらのコンポーネントがアウトバウンド・ストリーミングを確立する手法を示す。例えば、ソフトウェア・スレッド1602は所定のQoS 1608に対する要求1612を送信し、オプコード・サブスクリプション・リスト1610を提出する。応答して、応答メッセージ1618にて、ソフトウェア・スレッド1602にチャネルID 1614及びコンポーネントID 1616が割り当てられる。本発明の一実施形態においては、ソフトウェア・スレッド等のコンポーネント1602,1604,1606には、そのコンポーネントの要件に応じてIPCハードウェア・リソースが割り当てられる。コンポーネント1602,1604,1606は、システム要件に応じて動的にインストール又はアンインストールされることが可能である。
図17において、コンポーネント1602,1604,1606は、ソフトウェア・スレッド1602のチャネル1702等、割り当てられたチャネル上でIPCデータを送信する。コンポーネント1602,1604,1606は対象のIPCノードと共にデータを提出するが、ノードが指定されていない場合、コンポーネントが全てのIPCノードに対しメッセージをブロードキャストすることも可能である。コンポーネント1602,1604,1606は、宛先コンポーネントIDや、そのコンポーネントに関連するチャネル、IPCアドレスを認識する必要はない。インバウンド・ストリーミングに関しては、コンポーネントはメッセージ・オプコードにより識別される。例えば、図18では、コンポーネント1602,1604,1606は、メッセージ・オプコードにより識別される。コンポーネントIDは、上述のコンポーネント経路制御テーブルを介して発見される。IPCセッション・マネージャは、メッセージのIPCオプコードにサブスクライブした全てのコンポーネントに着信データを経路制御する。
[サービス品質]
図19には、異なるデータ帯域幅及びチャネル優先度を有する3つのチャネル、チャネルA 1902,チャネルB 1904, チャネルC 1906を示す。この例においては、チャネルC 1906は、チャネルB 1904より優先度が高く、チャネルB 1904は、チャネルA 1902より優先度が高い。各チャネル1902〜1906は対応するチャネル・バッファ1910〜1914を備える。チャネル・バッファ1910〜1914には、各チャネルからの着信データが取り込まれる。IPCスタックのデバイス・インタフェース層に存在するIPCスケジューラ1916はチャネル・バッファ1910〜1914から着信データ・パケットを読み出し、チャネル1902〜1906の帯域幅及びチャネル優先度を考慮に含めて、IPCフレーム1918を形成する。IPCチャネル・バッファ1910〜1914からのデータを円滑に移動させるため、スケジューラ1916は、スケール決定(scale)されたIPCフレーム時間に等しいデータレートにスケール決定されるように、チャネル・バッファ1910〜1914から記憶されたデータを引き出す。IPCフレーム時間はIPCネットワークの特定の設計要件に応じて変化し得る。
上述のように、IPCネットワークに参加することを所望するコンポーネントは、最初にIPCスタックに登録し、続いて何らかのQoSパラメータに基づきIPCチャネルを要求する必要がある。QoSパラメータは、以下に限定されないが、チャネルの優先度、データレート、その他の周知のQoSパラメータを含む。デバイス層のスケジューラ1916は、チャネルのデータレート及び優先度の保証を担う。チャネルが許可されるとき、デバイス層は、そのチャネルを優先されたタスクとする。したがって、優先度の高いチャネルはデバイス層において優先度の高いタスクであることが保証される。デバイス層は、優先度が異なるOSタスクとしてチャネル優先度を実装することが可能である。これにより、データを送信するソフトウェア・コンポーネント間の待機時間のチャネル優先度と、そのデータのIPCスケジューリングとが考慮される。
スケジューラ1916は、IPCリンク上の各チャネルのデータレートを保証する役割を担う。このことは、各チャネルをラウンドロビン方式で(例えば、高い優先度から低い優先度へ)用いること、及び各チャネルに対し割り当てられたデータレートへの適合に充分なデータを、そのチャネルから選択する(IPCフレームを時間においてスケール決定する)ことにより行われる。データが全く存在しない、又は充分に存在しない場合、未使用データの差分は次のチャネルに与えられる。したがって、本発明の一実施形態においては、各ソフトウェア・コンポーネント毎のQoSという概念と共に、タスク優先度及びデータレート・スケジューラの組み合わせにより、QoS手法が提供される。
本発明の一実施形態では、あるQoSを有するチャネルは、コンポーネントがそのQoSを要求したポートにおいてのみ有効である。例えば、あるデータレートは、ソフトウェア・スレッド1922等のコンポーネントがQoSレベルを要求した、同期シリアル・インタフェース(SSI)1920等のポートにおいてのみ保証され得る。しかしながら、BLUETOOTH(登録商標)リンクの場合、QoS割り当て後にポートが変更される場合があるので、BLUETOOTH(登録商標)リンクでは保証されない。
[選択的ブロードキャスト]
図20には、2つのコンポーネント2002,2004が同じプロセッサに接続される場合のコンポーネント間(component−to−component)メッセージ送信を示す。この例示では、コンポーネントA 2002が本発明のIPCインタフェースを用いて、コンポーネントX 2004に対しメッセージを送信する。コンポーネントX 2004の存在する場所はIPCセッション・マネージャ2006により認識されるため、コンポーネントA 2002がコンポーネントX 2004の存在する場所を認識する必要はない。IPCセッション・マネージャ2006は、コンポーネントID割り当て及びコンポーネント位置(プロセッサに接続されたコンポーネント)を保持している。この特定の例においては、コンポーネントX 2004がコンポーネントA 2002と同じプロセッサに存在することを、セッション・マネージャ2006がデータベースから発見する。工程2010にて、IPCセッション・マネージャのコンポーネント参照テーブル2008の情報を参照することにより、コンポーネントA 2002及びコンポーネントX 2004が同じプロセッサに存在することが判定される。そのためメッセージはIPCカプセル化されず、通常のOSメッセージ呼出(例えば、MICROSOFT(登録商標)メッセージ・キュー)を介してコンポーネントX 2004へ渡される。工程2012にて、IPC呼出がOSインタフェース規格に対しマッピングされる。この手法において、コンポーネント2002,2004等のコンポーネントは、メッセージ入力方式の修正について考慮する必要はない。コンポーネント2002,2004は、メッセージ・ポスト方法をOS固有の方法からIPC呼出の方法へ変更する必要はなく、メッセージの適正な経路制御はIPCスタックにより実行される。
ここで図21を参照する。図21には、2つのコンポーネントが異なるプロセッサに接続される場合のコンポーネント間メッセージ送信の例を示す。この例において、コンポーネントA 2102はコンポーネントX 2104と同じプロセッサ(図示せず)には存在せず、別のプロセッサに存在する。IPCセッション・マネージャ2106はコンポーネント参照テーブル2108にてコンポーネントX 2104を参照し、工程2110にて、コンポーネントX 2104がローカル・プロセッサに存在するか否かを判定する。この例においては、セッション・マネージャ2106はコンポーネントX 2104がローカル・プロセッサに存在しないと判定し、工程2112にて適切なヘッダ情報及び他の情報によりメッセージをカプセル化する。続いて、メッセージはコンポーネントX 2104への配信のため、IPCネットワークへ送信される。
ここで図22を参照する。図22には、WINDOWS(登録商標)CE AP等のIPCサーバ2202を備えるIPCネットワークを示す。IPCサーバ2202は、モデムBP等、第1のクライアント2204と、GSM BP等、第2のクライアント2206とに接続されている。サーバ2202内に存在するのは、第1のクライアント2204に関連するフィルタリング・テーブル(単にフィルタとも称する)2208と、第2のクライアント2206に関連する第2のフィルタリング・テーブル2210とである。サーバ2202に接続されているのは、ソフトウェア・スレッド(例えば、オーディオ)等のコンポーネント2224である。また、第1のクライアント2204は、コンポーネント2216,2218に対し送信されるメッセージのフィルタリングに用いられるフィルタリング・テーブル2212を有し、第2のクライアント2206は、コンポーネント2220,2222に対し送信されるメッセージのフィルタリングに用いられるフィルタリング・テーブル2214を有する。フィルタリング・テーブル2230を有するクライアント2228は、デイジーチェーンによりクライアント2204に接続されている。コンポーネント2226はクライアント2228に接続されている。
ここで図23を参照する。図23には、コンポーネント2216からオプコード2304を含むメッセージを受信するフィルタリング・テーブル2308を示す。フィルタリング・テーブル2308は、オプコード2304に基づきメッセージが転送されることが必要なコンポーネント/ノードを判定するために用いられる。例えば、オプコード「0010」を有するオーディオ・アプリケーションにおいては、そのオプコードに関連する全てのコンポーネントに対し、メッセージが転送される。本発明の選択的ブロードキャスト手法により、フィルタリング・テーブルを動的に更新することが可能となり、IPCネットワーク内のどこへメッセージを送信するかをクライアントが決定することが可能となる。
本発明の一実施形態では、図23に示す組み合わされたコンポーネント/ノード・フィルタリング・テーブル2308を用いる代わりに、別個のテーブルが各クライアント及びサーバに保持される。この実施形態では、別個のコンポーネント・フィルタ・テーブル及びノード・フィルタ・テーブルが用いられ、IPCノード(クライアント及びサーバ)毎にコンポーネント・フィルタリング・テーブル及びノード・フィルタリング・テーブルが存在する。クライアント2204等、別のクライアントに対し、クライアント2228等のクライアントが直接的にメッセージを転送することが可能であるので、これは真である(クライアント2228,2204はデイジーチェーンにより接続されている)。この例のノード・テーブルは特定のノードによりサポートされるデータ型のノードとリンクするため、コンポーネント・テーブルは特定のオプコードにリンクされているそのクライアント又はサーバのコンポーネントのリストを保持する。
図24には、IPCサーバ2414に接続された複数のIPCクライアント2402〜2412の図を示す。本発明の一実施形態による選択的ブロードキャストの一例では、IPCクライアント2412(IPCクライアント6)はIPCクライアント2412に対し割り当てられたフィルタリング・テーブルを用い、IPCネットワークを介してメッセージをブロードキャストする。各クライアント2402〜2412は関連するフィルタリング・テーブルを有し、IPCサーバはクライアントを選択するために用いられるフィルタリング・テーブルを有する。示す例において、IPCクライアント2412からメッセージを受信すると、IPCサーバ2414に存在するクライアント6フィルタリング・テーブル2416により、IPCクライアント2402(IPCクライアント1)、IPCクライアント2406(IPCクライアント3)、及びIPCクライアント2410(IPCクライアント5)に対するメッセージの選択的ブロードキャストが補助される。この例では、フィルタリング・テーブル2416により、IPCクライアント2404(IPCクライアント2)及びIPCクライアント2408(IPCクライアント4)は、メッセージを受信しない。
各IPCクライアントは自身に対し割り当てられ、かつIPCサーバ2412内に存在するフィルタリング・テーブルを有する。IPCクライアント2402〜2412の各々のフィルタリング・テーブルは、IPCリンクを介してIPCノードにより動的に更新され得る。この選択的ブロードキャスト機能を用い、メッセージが送信される必要のないIPCクライアントをフィルタリングして除くことにより、IPCクライアントは選択された対象にメッセージを送信することが可能となる。フィルタ・テーブル2416により、通信用のIPCデータ・リンクに任意のIPCクライアントを動的に含めることが可能となる。したがって、この手法により、編集時間に依存することなく、IPCネットワークが動的に形成され得る。選択的ブロードキャスト機能により、ソフトウェア・コンポーネントが異なるIPCクライアント上の他のソフトウェア・コンポーネントと互いに通信するための動的な方法が提供される。選択的ブロードキャスト機能により、専用のIPCチャネル及び専用の帯域幅からなる固定された組にIPCクライアントを事前に構成することは不要となる。また、IPCスタック及びIPCスタック下に存在するハードウェアは、コンポーネントが必要に応じて異なるリンクを選択して通信することが可能であるように抽象化される。
IPCプロトコルにより、MAを確認するIPCを通信用のIPCリンクに動的に追加することが可能となる。したがって、編集時間に依存することなく、又は任意の他のソフトウェア条件によることなく、IPCネットワークが形成される。本発明のIPCにより、ソフトウェア・コンポーネントがIPCスタックと通信する標準的な手法が提供される。また、IPCスタック下のハードウェアは、異なるリンクを選択してコンポーネントが通信することが可能であるように抽象化される。QoS及び選択的ブロードキャスト機能により、クライアント及びコンポーネントの柔軟性が改良され、IPC性能が改良される。
本発明の一実施形態によるIPCネットワークの図。 本発明の一実施形態によるIPCスタックの図。 本発明の一実施形態によるIPCコンポーネントIPC割り当ての図。 本発明の一実施形態による主なIPCテーブルの図。 本発明の一実施形態によるチャネル割り当ての図。 本発明の一実施形態によるIPCクライアント初期化ルーチンに含まれる工程を示す図。 本発明の一実施形態によるIPCクライアント初期化ルーチンに含まれる工程を示す別の図。 本発明の一実施形態による第1レベルのIPCカプセル化を示す図。 本発明の一実施形態によるIPCコンポーネント初期化にて実行される工程を示す図。 本発明の一実施形態によるコンポーネント初期化にて実行される工程を示す図。 本発明の一実施形態によるIPCクライアントとIPCサーバとの間におけるIPCデータの移動を示す図。 本発明の一実施形態によるIPCデータヘッダの図。 本発明の一実施形態によるIPCデータ要求にて実行される工程の図。 本発明の一実施形態によるIPCネットワークの図。 本発明の一実施形態による無線通信デバイス等の電子デバイスの図。 本発明の一実施形態によるアウトバウンド・ストリーミングの図。 本発明の一実施形態によるアウトバウンド・ストリーミングの図。 本発明の一実施形態によるインバウンド・ストリーミングの図。 本発明の一実施形態によるQoS手続を示す図。 本発明の一実施形態によるコンポーネント間メッセージ送信を示す図。 本発明の一実施形態による異なるプロセッサに存在するコンポーネントにおけるコンポーネント間メッセージ送信を示す図。 本発明の一実施形態によるフィルタリング・テーブルを示すIPCネットワークの図。 本発明の一実施形態によるフィルタリング・テーブルの図。 本発明の一実施形態によるメッセージの選択的ブロードキャストを提供するIPCネットワークの図。

Claims (15)

  1. プロセッサ間通信(IPC)クライアントと、
    IPCクライアントに接続されたコンポーネントと、
    IPCクライアントに接続されたIPCサーバと、
    IPCサーバはコンポーネントにより送信されるメッセージが送信されることが必要な場所を決定するための1つ以上のフィルタリング・テーブルを有することとからなるIPCネットワーク。
  2. コンポーネントからのメッセージは、オプコードと、コンポーネントにより送信されるメッセージが送信されることが必要な場所をオプコードを用いて決定する1つ以上のフィルタリング・テーブルとを含む請求項1に記載のIPCネットワーク。
  3. IPCクライアント及びIPCサーバは1つ以上のフィルタリング・テーブルのコンテンツを交渉する請求項1に記載のIPCネットワーク。
  4. IPCクライアントはフィルタリング・テーブルを有する請求項1に記載のIPCネットワーク。
  5. IPCクライアントに存在するフィルタリング・テーブルはコンポーネントによりメッセージが受信されることが必要か否かを判定する請求項4に記載のIPCネットワーク。
  6. IPCクライアントに接続された第2のコンポーネントを含み、
    IPCクライアントに存在するフィルタリング・テーブルは、IPCクライアントにより送信されたメッセージをIPCクライアントに接続された第1のコンポーネント及び第2のコンポーネントのうちの任意のコンポーネントが受信することが必要か否かを判定する請求項5に記載のIPCネットワーク。
  7. プロセッサ間通信(IPC)クライアントと、IPCクライアントに接続されたIPCサーバ及びコンポーネントとからなるIPCネットワークにおける選択的ブロードキャスト方法であって、
    オプコードを含むメッセージをコンポーネントが送信する工程と、
    IPCサーバにてメッセージを受信する工程と、
    IPCクライアントに関連するフィルタ・テーブルを用いて、メッセージが送信されることが必要な場所をサーバが決定する工程とからなる方法。
  8. IPCクライアントはフィルタ・テーブルのコンテンツに関してIPCサーバと交渉する請求項7に記載の方法。
  9. フィルタ・テーブルは、IPCネットワークに接続されており、かつ、コンポーネントにより送信されるオプコードを含むメッセージを受信する全ての他のコンポーネントを、オプコードとリンクさせる請求項7に記載の方法。
  10. オプコードは特定の型のサービスに関連する請求項7に記載の方法。
  11. プレゼンテーション・マネージャと、プロセッサ間通信(IPC)セッション・マネージャと、デバイス・インタフェース層とを有するIPCスタックと、
    IPCスタックに接続されており、かつ、サービス品質(QoS)に基づきチャネルが割り当てられているコンポーネントと、
    デバイス・インタフェース層に接続されており、かつ、チャネルに対するQoSの割り当てを担うIPCスケジューラとからなるIPCネットワーク。
  12. IPCスケジューラはチャネルに要求されるデータレートを保証する請求項11に記載のIPCネットワーク。
  13. チャネルに接続されており、かつ、チャネルを介して送信されるデータを記憶するチャネル・バッファを含む請求項12に記載のIPCネットワーク。
  14. IPCスケジューラはチャネルに要求されるデータレートのサポートに充分なデータをチャネル・バッファから選択する請求項13に記載のIPCネットワーク。
  15. IPCスケジューラはIPCスケジューラにより用いられるIPCフレームのサイズに応じてチャネル・バッファから選定するデータをスケール決定する請求項14に記載のIPCネットワーク。
JP2006521897A 2003-07-29 2004-07-20 サービス品質保証及び選択的ブロードキャストを提供するプロセッサ間通信プロトコル Pending JP2007500474A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/631,043 US20050027824A1 (en) 2003-07-29 2003-07-29 Interprocessor communication protocol providing guaranteed quality of service and selective broadcasting
PCT/US2004/023293 WO2005013140A1 (en) 2003-07-29 2004-07-20 Interprocessor communication protocol providing guaranteed quality of service and selective broadcasting

Publications (1)

Publication Number Publication Date
JP2007500474A true JP2007500474A (ja) 2007-01-11

Family

ID=34103968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006521897A Pending JP2007500474A (ja) 2003-07-29 2004-07-20 サービス品質保証及び選択的ブロードキャストを提供するプロセッサ間通信プロトコル

Country Status (5)

Country Link
US (1) US20050027824A1 (ja)
EP (1) EP1652101A1 (ja)
JP (1) JP2007500474A (ja)
KR (1) KR100812680B1 (ja)
WO (1) WO2005013140A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013531906A (ja) * 2010-04-21 2013-08-08 ファーウェイ デバイス カンパニー リミテッド ダブル中央処理ユニットの間の通信のための方法、装置、及びシステム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160055578A1 (en) * 2014-08-21 2016-02-25 George Janas System and method for monitoring student loan debt relief
US20160381191A1 (en) * 2015-06-26 2016-12-29 Intel IP Corporation Dynamic management of inactivity timer during inter-processor communication
CN107734705A (zh) * 2016-08-12 2018-02-23 中兴通讯股份有限公司 动态调度的方法及装置
WO2018035722A1 (zh) * 2016-08-23 2018-03-01 华为技术有限公司 会话管理方法及装置
CN112492299A (zh) * 2020-11-25 2021-03-12 杭州视洞科技有限公司 一种通过app在局域网内诊断和处理ipc异常问题的方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3490473B2 (ja) * 1993-02-17 2004-01-26 松下電器産業株式会社 プロセッサ間通信システム
ES2108646B1 (es) * 1995-11-30 1998-07-01 Telefonica Nacional Espana Co Estructura para un sistema de informacion electronica.
DE19625002B4 (de) * 1996-06-22 2005-03-10 Daimler Chrysler Ag Fahrzeugkommunikationssystem
US6907032B2 (en) * 2000-03-06 2005-06-14 Goremote Internet Communications, Inc. Method for selecting terminating gateways for an internet telephone call using a tree search
US6738361B1 (en) * 2000-05-31 2004-05-18 Nokia Ip Inc. Method, apparatus and computer program for IP traffic prioritization in IP networks
US6751475B1 (en) * 2000-10-19 2004-06-15 At&T Wireless Services, Inc. Shared-revenue billing system for transmission of wireless data from a vehicle
ATE372639T1 (de) * 2000-12-08 2007-09-15 Sony Deutschland Gmbh Schnittstelle auf hoher ebene für dienstqualitätbasierte mobile multimedia- anwendungen
KR100358153B1 (ko) * 2000-12-18 2002-10-25 한국전자통신연구원 서비스 품질을 지원하는 아이피 패킷 포워딩 분산 처리장치 및 그 방법
WO2002089377A1 (en) * 2001-04-09 2002-11-07 Objective Interface Systems, Inc. System, method, and article of manufacture for using a replaceable component to select a replaceable quality of service capable network communication channel component
US7580517B2 (en) * 2001-06-05 2009-08-25 Tekelec Methods and systems for providing duplicate point code support in a signaling message routing node
US7587517B2 (en) * 2002-07-08 2009-09-08 Precache Inc. Packet routing via payload inspection for quality of service management
JP2004073701A (ja) * 2002-08-22 2004-03-11 Maruhon Ind Co Ltd 遊技機、コンピュータプログラム及び記録媒体
JP2006518064A (ja) * 2003-01-23 2006-08-03 ユニバーシティー オブ ロチェスター マルチクロックドメインを有するマイクロプロセッサ
US7673054B2 (en) * 2003-07-28 2010-03-02 Sap Ag. Grid manageable application process management scheme

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013531906A (ja) * 2010-04-21 2013-08-08 ファーウェイ デバイス カンパニー リミテッド ダブル中央処理ユニットの間の通信のための方法、装置、及びシステム
US8964927B2 (en) 2010-04-21 2015-02-24 Huawei Device Co., Ltd. Method, device and system for communication between double central processing units

Also Published As

Publication number Publication date
EP1652101A1 (en) 2006-05-03
KR20060041301A (ko) 2006-05-11
US20050027824A1 (en) 2005-02-03
WO2005013140A1 (en) 2005-02-10
KR100812680B1 (ko) 2008-03-27

Similar Documents

Publication Publication Date Title
US8326918B2 (en) Interprocessor communication protocol
US20050010925A1 (en) Interprocessor communication protocol with smart streaming port
US7644171B2 (en) Mobile networking system and method using IPv4 and IPv6
US20120179819A1 (en) Method and apparatus for providing mobile and other intermittent connectivity in a computing enviornment
US20030120811A1 (en) Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7263701B2 (en) Interprocess communication method and apparatus
EP1699417B1 (en) Interprocessor communication network providing dynamic dedication of ports
JP2007526544A5 (ja)
US7356594B2 (en) Interprocessor communication protocol providing intelligent targeting of nodes
JP2007500474A (ja) サービス品質保証及び選択的ブロードキャストを提供するプロセッサ間通信プロトコル
KR100787850B1 (ko) 고레벨 서비스 구성을 갖는 인터프로세서 통신 프로토콜
KR100805094B1 (ko) 포트들의 동적 전용을 제공하는 인터프로세서 통신네트워크
EP3534586B1 (en) Techniques for interaction between network protocols
EP1296239A2 (en) Interprocess communication method and apparatus
CA2401462A1 (en) Interprocess communication method and apparatus