[例示的な実施形態]
図1は、本開示の実施形態に係るマルチモーダルインタフェースを有する通信システム100の実施形態の簡略化されたブロック図である。通信システム100は、電子デバイス102と、1つ又は複数のセカンダリデバイス104a−104dとを含んでよい。各セカンダリデバイス104a−104cは、それぞれ、インタフェース128a−128cを含んでよい。例において、1つ又は複数のセカンダリデバイスは、無線通信を可能にする無線モジュールを含んでよい。例えば、セカンダリデバイス104dは、無線モジュール130aを含むものとして示される。
電子デバイス102は、オペレーティングシステム(OS)108と、プロセッサ110と、メモリ112と、OSポリシマネージャ(OSPM)114と、動作領域(opregion)116と、ファームウェア118と、プラットフォームポリシマネージャ(PPM)124と、1つ又は複数のローカルポリシマネージャ(LPM)126a−126dと、1つ又は複数のマルチモーダルインタフェース106a−106dと、を含んでよい。メモリ112は、メールボックス122を含んでよい。メールボックス122は、メモリ112におけるバッファであってよい。PPM124は、システムホストコントローラ120を含んでよい。例において、1つ又は複数のマルチモーダルインタフェースは、無線通信を可能にする無線モジュールを含んでよい。例えば、マルチモーダルインタフェース106dは、無線モジュール130bを含むものとして示される。他の例において、無線モジュール130bは、電子デバイス102に含まれ、そのリソースは、複数のマルチモーダルインタフェースによって共有されてよい。セカンダリデバイス104dは、無線モジュール130a及び130bを用いて、電子デバイス102との無線通信を行ってよい。
実施形態において、各マルチモーダルインタフェース106a−106dは、対応するLPM126a−126dを有してよい。例えば、マルチモーダルインタフェース106aは、LPM126aに対応してよく、マルチモーダルインタフェース106bは、LPM126bに対応してよく、マルチモーダルインタフェース106cは、LPM126cに対応してよく、マルチモーダルインタフェース106dは、LPM126dに対応してよい。各マルチモーダルインタフェース106a−106dは、同じインタフェースにおいて、送電、方向性、及び複数の入出力(I/O)プロトコルをサポート可能なマルチモーダルインタフェースであってよい。複数のプロトコルは、ユーザの介入なく、マルチモーダルインタフェース又はコネクタにおいて、同時に、又はこれら自身によって実行されるように、自動的に構成されてよい。例えば、各セカンダリデバイス104a−104dは、異なる電子デバイスであってよく、単一のマルチモーダルインタフェース(例えば、マルチモーダルインタフェース106a−106dの1つ)は、異なるセカンダリデバイス104a−104dの各々をサポート可能であってよい。
図1の要素は、任意の好適な接続(有線又は無線)を用いた1つ又は複数のインタフェースを介して、互いに連結されてよく、これにより、通信用に実行可能な経路を提供する。追加的に、図1のこれらの要素のいずれか1つ又は複数は、具体的な構成の必要性に基づいて組み合わせられてよく、又は、アーキテクチャから除去されてよい。通信システム100は、ネットワークにおいてパケットを送信又は受信するために、送信制御プロトコル/インターネットプロトコル(TCP/IP)通信が可能な構成を含んでよい。通信システム100は、適宜、特定の必要性に基づいて、ユーザデータグラムプロトコル/IP(UDP/IP)又は任意の他の好適なプロトコルと併せて動作してもよい。
通信システム100の特定の例示的技術を示す目的のために、通信環境を横断可能な通信を理解することが重要である。以下の基本的な情報は、本開示の適切な説明を可能とするための基礎として認識されてよい。
現在のシステムは、典型的には、ディスプレイコネクタ、オーディオコネクタ、電力コネクタ等のような具体的な機能を1つだけサポートする専用コネクタを有する。ユーザが従前よりも多くの電子デバイスの選択肢を有し、かつ、これらのデバイスに接続する必要性を有することにより、単一のコネクタにおいて複数の機能をサポートする統一されたコネクタが必要とされている。OS又はI/Oプロトコルに依存しないプラットフォームにおいて、統一されたコネクタが自動的に構成され、マルチモーダルコネクタの機能を用いることができれば有益であろう。
OSが接続されたハードウェアと通信可能となるような解決手段を実装すべく、接続されたハードウェアの各々は、特定のプロトコルを介して、基礎となるハードウェアとの通信を行わなければならない。しかしながら、ソフトウェアドライバはOSに固有である必要があり、ソフトウェアドライバがプラットフォームポート及びデバイス実装に合わせてカスタマイズされる必要もあるので、これは、非常に望ましくない。全てのOSに対する共通の解決手段を実現すべく、OSが異なるタイプのハードウェアとインタラクトすることを可能とするジェネリックなファームウェアベースのインタフェースが定義される必要がある。インタフェースは、OS固有のものとして開発されるべきではない。これは、相手先ブランド名製造者(OEM)実現への負荷を増加させ、新たな技術に対する市場準備時期に悪影響を与えるであろう。
マルチモーダルインタフェースを含む通信システムは、図1において概説されたように、これらの課題(及び他の課題)を解消することができる。図1の通信システム100において、各マルチモーダルインタフェース106a−106dは、同じインタフェース又はコネクタにおける送電、方向性、及び複数のI/Oプロトコルをサポート可能なマルチモーダルインタフェース又はコネクタであってよい。複数のプロトコルは、ユーザの介入なく、マルチモーダルインタフェースにおいて、同時に、又はこれら自身によって実行されるように、自動的に構成されてよい。通信システム100は、1つ又は複数のマルチモーダルインタフェース又はコネクタを有するプラットフォームを効率的に構成し、かつ動作させるべく、(ソフトウェア及びハードウェアの両方の)データ構造、コマンド、通知、及び状態移行のセットを含んでよい。通信システム100は、マルチモーダルインタフェースを実装するOSに対して、プラットフォームの能力を伝送してもよい。I/Oプロトコルは、マルチモーダルインタフェースにおいて、同じ又は異なるピンを介して動作するように構成されてよい。
その方法論は、OS(例えば、Android(登録商標)、iOS(商標)、Linux(登録商標)、OSX(商標)、Windows(登録商標)等)及びI/O相互接続(例えば、I2C(商標)、I2S(商標)、PCIe(商標)等)に依存しない様式で、かつ、電子デバイス102におけるマルチモーダルインタフェースとインタフェースをとるために用いられるデータ構造として、定義されてよい。結果として、ハードウェアコンポーネント設計者、システムビルダ、及びデバイスドライバ(ソフトウェア)開発者は、互いとシームレスに相互運用するマルチモーダルインタフェースを有するプラットフォーム及びデバイスを開発することができる。例えば、PPM124は、ハードウェア及びファームウェアの組み合わせと、プラットフォーム又は電子デバイスにおいて、全てのマルチモーダルインタフェースにインタフェースを提供する、ベンダ提供による任意のOSサポートソフトウェアとを含んでよい。特定のインタフェース(例えば、PCIe(商標)、I2C(商標)等)は、PPM124とのインタフェースをとるためには必要とされない。さらに、OSPM114とPPM124との間のインタフェースは、上述された相互接続又は上述されていない任意の他の相互接続のいずれかを用いて容易に実装されるような態様で定義される。
PPM124及びOSPM114を用いて、通信システム100は、基礎となるハードウェア(例えば、タイプCハードウェア)を抽象化するジェネリックなファームウェアベースのインタフェースを定義することができ、OSが、その仕様又は複雑性を認識又は理解することなく、ハードウェアにアクセスすることを可能とする。OSPM114は、基礎となるプラットフォーム固有のハードウェアを抽象化する、OS108からのインタラクション層であり、ハードウェアと実際の物理的なトランザクションを実行するプラットフォームエージェントである。OS108からハードウェア(例えば、セカンダリデバイス104a−104d)との通信は、OSPM114で開始し、ハードウェア(例えば、セカンダリデバイス104a)に到達する前に、LPM(例えば、LPM126a)を通過する。
ファームウェア118は、OEMがサポートする必要があるOS又はプラットフォームもしくは電子デバイス102における具体的なポート及びデバイスの数に関わらず、OEMによって実装可能なファームウェアベースのデバイスポリシマネージャであってよい。これにより、OEMに対する開発の取り組みが軽減可能であり、新たな製品、デバイス、及び機能を市場化するまでの時間を加速可能とする。ファームウェア118及びPPM124は、OS108から基礎となるハードウェアを抽象化させ、LPM126a−126dとインタラクトしてよい。LPM126a−126dは、マルチモーダルインタフェース(例えば、マルチモーダルインタフェース106a−106d)に接続されるセカンダリデバイス(例えば、セカンダリデバイス104a−104d)との実際のコマンドレベルの通信を行う。
各マルチモーダルインタフェース106a−106dは、それぞれ、LPM126a−126dとインタラクトするいくつかの最小検出ロジックを有するインタフェース又はコネクタであってよい。電子デバイス102は、接続されたLPM126a−126dを介して、セカンダリデバイス104a−104dの理解、制御、又はこれらとの通信を行ってよい。各LPM126a−126dは、物理的にSOCの一部であってよく、又は、他のマイクロコントローラ(例えば、埋め込みコントローラ又は統合センサハブ)によって隠されたプラットフォームに別個に設けられてよい。PPM124はOS108と各セカンダリデバイス104a−104dとの間における通信のために抽象化層を提供するので、これにより、問題回避及びバグ修正が、OS層の変更のような上層の変更なしで、プラットフォームレベルのみに実装されることが可能となる。
OSPM114は、主に、セカンダリデバイス104a−104dへの、又はこれらのセカンダリデバイスからのあらゆるOS108ベースの要求又は通信をファームウェア118に伝送することを担う。ファームウェア118は、PPM124とインタラクトすることによって、OS108及びOSPM114から基礎となるハードウェアを抽象化させることができる。PPM124は、異なるセカンダリデバイス104a−104dにおいて、全て(又はほぼ全て)のプラットフォーム及びシステムレベルの情報を維持するプラットフォーム固有のコンポーネントであり、個々のマルチモーダルインタフェース106a−106dを管理する各LPM126a−126dと、直接通信を行う。OSPM114とファームウェア118との間の通信メカニズムは、ほぼ任意の特定のPPM124により動作することができる。ファームウェア118がOSPM114とのランタイム通信を可能とするように、ファームウェア118は、複数の態様(ACPI、SMM等を含む)で実装されてよい。
OSPM114とPPM124との間の通信は、メールボックス122を経由してよい。メールボックス122は、電子デバイス102のメモリ112における共有バッファであってよく、又はメモリ112における何らかの他の位置であってよい。メールボックス122は、レジスタ及びセカンダリデバイス104a−104dへのアクセスパターンを記述する、セカンダリデバイス104a−104dのインタフェース仕様レジスタに基づくフォーマットで定義される、共有メモリのジェネリックなデータ構造であってよい。具体例において、メールボックス122は、レジスタ及びタイプCハードウェアへのアクセスパターンを記述する、USBタイプCソフトウェアインタフェース仕様レジスタに基づくフォーマットで定義される共有メモリであってよい。
OS108及びセカンダリデバイス(例えば、セカンダリデバイス104a−104dの1つ)からの2つの連続するコマンド間で起こり得る競合状況を回避すべく、OS108とセカンダリデバイスとの間の通信が双方向通信である場合、メールボックス122は、2つの領域にパーティショニングされ、その各々が、ファームウェア118又はOSPM114のいずれかにのみアクセス可能であってよい。例えば、メールボックス122は、コマンド及び応答エリアとしてパーティショニングされてよい。例において、OSPM114は、OS108からセカンダリデバイスへの要求又はコマンドを、メールボックス122のOSPM114部分に書き込んでよい。PPM124は、メールボックス122を読み出し、OSPM114からの要求又はコマンドを受信してよい。セカンダリデバイスからOSPM114への通信アラートが存在する場合、PPM124は、メールボックス122を更新し、OSPM114にアラートを発する。これは、次に、メールボックス122を読み出して、アラートの原因を処理する。
システムホストコントローラ120は、クライアントシステムで用いられる埋め込みコントローラ(EC)、サーバシステムで用いられるベースボード管理(BM)コントローラ、タブレットシステムで用いられるI2C(商標)コントローラ、長期の可能な解決手段において利用可能な統合センサハブ(ISH)、又はPPM124との間で容易に通信を行ういくつかの他の同様のシステムであってよい。ファームウェア118は、PPM124のタイプに無関係な通信チャネルのために、動作領域116を確立してよい。例えば、OSPM114からの要求が検出された場合、ファームウェア118は、その要求により動作領域116を更新し、PPM124にアラートを発してよい。一例において、動作領域116は、メールボックス122のような共有エリアへのアクセスを容易にすることを補助してよい。より具体的には、動作領域116は、電子デバイス102における共有エリアの位置を定義してよい。これにより、ファームウェア118は、動作領域116によって提供されるアクセス情報を用いて、共有エリアにおけるデータを更新又は取得してよい。図示の例において、PPM124は、要求(例えば、OS108からの要求又は通信)を取得し、これを処理し、セカンダリデバイス(例えば、セカンダリデバイス104a)に対して、LPM(例えば、LPM126a)及びセカンダリデバイスに接続されるマルチモーダルインタフェース(例えば、マルチモーダルインタフェース106a)を用いて、その要求を伝送してよい。同様に、セカンダリデバイスからのあらゆる要求又は通信は、マルチモーダルインタフェース(例えば、マルチモーダルインタフェース106a)及びLPM(例えば、LPM126a)を通過し、PPM124によって受信されてよい。PPM124は、要求又は通信によりメールボックス122を更新してよく、OSPM114は、更新について通知されてよい。OSPM114は、動作領域116及びメールボックス122を用いて同様にPPM124との通信を行うファームウェア118を用いて、要求又は通信を取得してよい。例において、セカンダリデバイス(又はインタフェースもしくはLPM)からのあらゆる要求又は通信は、最初に、ファームウェア118がそれをメールボックス122に書き込む前に、PPM124によって動作領域116において更新され、OSPM114によって読み出される。
具体例において、OSPM114がアイドル状態にある場合、OSPM114は、OS108、PPM124、又は何らかの他の要素からの通知又は要求を待ってよい。アイドル状態から、OSPM114は、コマンドを送信し、コマンド完了状態の待ちに入ってよい。例えば、OSPM114は、コネクタステータス更新コマンドをPPM124に送信し、PPM124からの応答を待ってよい。コマンドがリセットPPMコマンドであった場合、そのコマンドにより通知がOSPM114から無効化されてよく、PPM124は、リセットコマンドが受信されたことを示すリセットインジケータを送信してよい。
コマンド完了状態の待ちの間に、PPM124がビジーインジケータに応答した場合、OSPM114は、コマンドの完了を遅延させ、コマンド競合状態の待ちに戻ってよい。PPM124がビジーインジケータに応答し、コマンドがキャンセルされる必要があるとOSPM114が判断した場合、OSPM114は、現コマンドキャンセル中間状態に入り、コマンドキャンセルメッセージを送信し、コマンド競合状態の待ちに戻ってよい。
また、アイドル状態から、OSPM114は、通知を待ってよい。この場合、OSPM114は、アイドル状態のままである。コネクタ変更保留指示が設定された場合、OSPM114は、OPM処理コネクタ変更中間状態に入ってよい。OPM処理コネクタ変更中間状態から、OSPM114は、関連コマンドを送信し、コマンド完了状態のOPM待ちに入ってよい、又は、コネクタ変更を受信確認し、受信確認コマンドを送信し、受信確認コマンドインジケータ待機状態に入ってよい。PPM124が、コネクタ変更が完了したことを示す受信確認コマンドインジケータを送信した後で、PPM124は、OPM受信確認コマンドインジケータ待機状態からアイドル状態に移ってよい。
通信システム100を用いて、OSベンダは、マルチモーダルインタフェース106a−106dのようなマルチモーダルインタフェース又はコネクタをサポートするシステムと、適切に相互運用してよい。これにより、OSベンダ及びオペレーティングハードウェアベンダ(OHV)は、シームレスに相互運用可能なソフトウェア及びハードウェアを開発することが可能となる。これにより、相手先ブランド名製造者(OEM)又はOHVは、製品をユーザに供給し、様々なOS、付属のサードパーティ周辺機器と共にシームレスに動作する、OSに依存しない標準化ハードウェアを生成することも可能となり、製品が互いに通信を行う能力を向上させることさえ可能となる。
図1のインフラストラクチャを参照すると、例示的な実施形態に係る通信システム100が示される。「コマンド」及び「通信」という用語は、本明細書で用いられる場合、データの伝送を指す。「データ」という用語は、本明細書で用いられる場合、任意のタイプのバイナリ、数値、音声、ビデオ、テキスト、又はスクリプトデータ、又は任意のタイプのソースもしくはオブジェクトコード、又は電子デバイス及び/又はネットワークにおいて1つのポイントから他のポイントに伝送可能な任意の好適なフォーマットの任意の他の好適な情報を指す。例示的な実装において、電子デバイス102及びセカンダリデバイス104a−104dは、電子的要素であり、これらは、任意の好適なハードウェア、ソフトウェア、コンポーネント、モジュール、又はこれらのオペレーションを容易にするオブジェクト、及びデータ又は情報を受信、送信、及び/又は他の方法で伝送する好適なインタフェースを包含することが意図される。これは、データ又は情報の有効な交換を可能とする適切なアルゴリズム及び通信プロトコルを含んでよい。
通信システム100に関連する内部構造に関して、電子デバイス102及びセカンダリデバイス104a−104dの各々は、本明細書で概説されるオペレーションにおいて用いられるべき情報を格納するためのメモリ要素を含んでよい。電子デバイス102及びセカンダリデバイス104a−104dの各々は、任意の好適なメモリ要素(例えば、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、特定用途向け集積回路(ASIC)等)、ソフトウェア、ハードウェア、ファームウェア、又は任意の他の好適なコンポーネント、デバイス、要素、もしくはオブジェクトに、適宜、具体的な必要性に基づいて、情報を保持してよい。本明細書で説明されるメモリアイテムのいずれも、「メモリ要素」という広義の用語内に包含されるものと解釈されなければならない。さらに、通信システム100において利用、追跡、送信、又は受信された情報は、任意のデータベース、レジスタ、キュー、テーブル、キャッシュ、制御リスト、又は他のストレージ構造に提供されてよく、これらの全ては、任意の好適な時間枠で参照されてよい。このようなストレージのあらゆる選択肢も、本明細書で用いられる場合、「メモリ要素」という広義の用語内に含まれてよい。
特定の例示的な実装において、本明細書で概説される機能は、非一時的コンピュータ可読媒体を含み得る1つ又は複数の有形媒体においてエンコードされるロジック(例えば、ASIC、デジタル信号プロセッサ(DSP)命令、プロセッサによって実行されるべきソフトウェア(潜在的にオブジェクトコード及びソースコードを含む)、又は他の同様の機械等において提供される埋め込みロジック)によって実装されてよい。これらの例のいくつかにおいて、メモリ要素は、本明細書で説明されるオペレーションに用いられるデータを格納してよい。これは、本明細書で説明される動作を実行するために実行されるソフトウェア、ロジック、コード、又はプロセッサ命令を格納可能なメモリ要素を含む。
例示的な実装において、電子デバイス102及びセカンダリデバイス104a−104dは、本明細書で概説されるオペレーションを実現又は促進するソフトウェアモジュールを含んでよい。これらのモジュールは、任意の好適な態様で、好適に組み合わせられてよく、これは、具体的な構成及び/又は供給の必要性に基づいてよい。例示的な実施形態において、このようなオペレーションは、意図される機能を実現すべく、ハードウェアによって実行され、これらの要素の外部に実装され、又は、いくつかの他のネットワークデバイスに含まれてよい。さらに、モジュールは、ソフトウェア、ハードウェア、ファームウェア、又はこれらの任意の好適な組み合わせとして実装されてよい。これらの要素は、本明細書で概説されるオペレーションを実現するために、他のネットワーク要素と連携可能なソフトウェア(又はレシプロ型ソフトウェア)を含んでもよい。
追加的に、電子デバイス102及びセカンダリデバイス104a−104dの各々は、本明細書で説明される動作を実行するソフトウェア又はアルゴリズムを実行可能なプロセッサを含んでよい。プロセッサは、本明細書で詳述されるオペレーションを実現するデータに関連付けられた任意のタイプの命令を実行してよい。一例において、プロセッサは、要素又は項目(例えば、データ)を1つの状態又は物から他の状態又は物に変換してよい。他の例において、本明細書で概説される動作は、固定ロジック又はプログラマブルロジック(例えば、プロセッサによって実行されるソフトウェア/コンピュータ命令)により実装されてよく、本明細書において特定される要素は、何らかのタイプのプログラマブルプロセッサ、プログラマブルデジタルロジック(例えば、フィールドプログラマブルゲートアレイ(FPGA)、EPROM、EEPROM)又はデジタルロジック、ソフトウェア、コード、電子的命令、もしくはこれらの任意の好適な組み合わせを含むASICであってよい。本明細書で説明される、利用可能な処理要素、モジュール、及び機械のいずれも、「プロセッサ」という広義の用語内に包含されるものと解釈されるべきである。
電子デバイス102は、電子的要素であってよく、例えば、デスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、パーソナルデジタルアシスタント、スマートフォン、タブレット、又は他の同様のデバイスを含む。セカンダリデバイス104a−104dは、電子デバイス102との通信を行う周辺機器のようなセカンダリハードウェアであってよい。「周辺機器」という用語は、本明細書で用いられる場合、概して、いくつかの態様でコンピュータのような電気的デバイスに接続され、かつ、これと共に動作するユニバーサルシリアルバス(USB)フラッシュドライブ、コンピュータマウス、キーボード、スピーカ、マイク等のような、任意の補助デバイスとして定義される。1つ又は複数のセカンダリデバイス104a−104dは、同じタイプのデバイスであってよく、又は、各セカンダリデバイス104a−104dは、異なるデバイスであってよい。
図2を参照すると、図2は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー200の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー200の1つ又は複数のオペレーションは、OSPM114、PPM124、及びLPM126a−126dの1つ又は複数によって実行されてよい。202において、データが、共有メモリに伝送される。例えば、OSポリシマネージャ114は、データをメールボックス122に伝送してよい。他の例において、データは、ハードウェアで実装されるレジスタインタフェースに伝送されてよい。ここで、データ書き込みオペレーションは、他のオペレーションをトリガするために用いられてよい。204において、データが共有メモリにあるというメッセージが、インタフェースに伝送される。例えば、OSポリシマネージャ114は、データがメールボックス122にあるというメッセージを、ファームウェア118に伝送してよい。206において、インタフェースは、データを読み出し、当該データに関する1つ又は複数の命令を、プラットフォームポリシマネージャに伝送する。例えば、ファームウェア118は、メールボックス122におけるデータを読み出してよく、当該データに関する1つ又は複数の命令をPPM124に伝送してよい。208において、プラットフォームポリシマネージャは、命令を受信及び解釈し、命令に基づいて、1つ又は複数のコマンドをローカルポリシマネージャに伝送する。例えば、PPM124は、命令を解釈し、1つ又は複数の命令又はコマンドをLPM126aに伝送してよい。210において、ローカルポリシマネージャは、データをセカンダリデバイスに伝送する。例えば、LPM126aは、インタフェース128a及びマルチモーダルインタフェース106aを用いて、データをセカンダリデバイス104aに伝送してよい。
図3を参照すると、図3は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー300の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー300の1つ又は複数のオペレーションは、OSPM114、PPM124、及びLPM126a−126dの1つ又は複数によって実行されてよい。302において、セカンダリデバイスに関連するデータが、プラットフォームポリシマネージャに伝送される。例えば、OSPM114は、データをPPM124に伝送してよい。データは、メールボックス122及びファームウェア118を用いて伝送されてよく、又は、何らかの他の手段を用いて、PPM124に伝送されてよい。さらに、データは、セカンダリデバイス104aに関するものであってよく、セカンダリデバイス104aに対する命令、クエリ、コマンド等を含む。304において、プラットフォームポリシマネージャは、データ及び/又は関連データをローカルポリシマネージャに伝送する。例えば、データは、PPM124からLPM126aに伝送されてよい。306において、ローカルポリシマネージャは、データ及び/又は関連データを、セカンダリデバイスとの通信を行うインタフェースに伝送する。例えば、データは、LPM126a及びマルチモーダルインタフェース106aを介して、セカンダリデバイス104aにおけるインタフェース128aに伝送されてよい。
図4A及び図4Bを参照すると、図4A及び図4Bは、実施形態に係るマルチモーダルインタフェースに関連し得る可能なオペレーションを示す例示的なタイミングフロー図である。タイミングフロー図は、OSPM114からLPM126aへの通常の同期フローを示す。LPM126aは、セカンダリデバイス104aとの通信を行ってよい。
実施形態において、OSPM114は、書き込み制御コマンドをメールボックス122に伝送してよい。OSPM114は、メールボックス書き込みコマンドの通知をファームウェア118に送信してもよい。ファームウェア118は、メールボックス122を読み出し、コマンド詳細を取得してよい。ファームウェア118は、コマンド詳細をPPM124に伝送してよい。例において、コマンド詳細は、動作領域116を用いてPPM124に伝送される。PPM124は、コマンドをLPM126aに伝送してよい。LPM126aは、コマンドを実行し、応答をPPM124に返信してよい。例において、応答は、動作領域116を用いて、ファームウェア118にコピーされてよい。ファームウェア118は、応答を受信し、応答をメールボックス122にコピーしてよい。ファームウェア118は、メールボックス122における応答、及び当該コマンドが完了したことを、OSPM114に通知してもよい。OSPM114は、コマンド完了受信確認をメールボックス122に書き込み、メールボックス122におけるコマンド完了受信確認をファームウェア118に通知してよい。ファームウェア118は、コマンド完了受信確認についてメールボックス122を読み出し、コマンド完了受信確認詳細を取得してよい。ファームウェア118は、コマンド完了受信確認詳細をPPM124に伝送してよい。例において、ファームウェア118は、動作領域116を用いて、コマンド完了受信確認詳細をPPM124に伝送してよい。PPM124は、コマンド完了受信確認をLPM126aに伝送してよい。LPM126aは、コマンド完了受信確認を処理し、受信確認応答をPPM124に返信してよい。PPM124は、受信確認応答をファームウェア118にコピーしてよい。例において、PPM124は、動作領域116を用いて、受信確認応答をファームウェア118にコピーしてよい。ファームウェア118は、受信確認応答を取得し、受信確認応答をメールボックス122にコピーしてよい。ファームウェア118は、メールボックス122における受信確認応答について、OSPM114に通知してもよい。
図5を参照すると、図5は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー500の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー500の1つ又は複数のオペレーションは、OSPM114、PPM124、及びLPM126a−126dの1つ又は複数によって実行されてよい。502において、セカンダリ電子デバイスは、インタフェースを介して、データを電子デバイスに伝送する。例えば、セカンダリデバイス104aは、インタフェース128及びマルチモーダルインタフェース106aを用いて、データを電子デバイスに伝送してよい。504において、インタフェースとの通信を行うローカルポリシマネージャは、データを受信し、データ及び/又は関連データの少なくとも一部をプラットフォームポリシマネージャに伝送する。例えば、LPM126aは、マルチモーダルインタフェース106aからデータを受信し、データをPPM124に伝送してよい。506において、プラットフォームポリシマネージャは、データ及び/又は関連データの少なくとも一部をインタフェースに伝送する。例えば、PPM124は、データの少なくとも一部をファームウェア118に伝送してよい。508において、インタフェースは、データ及び/又は関連データの少なくとも一部をバッファに格納し、データ及び/又は関連データがバッファに格納されたというメッセージを、オペレーティングシステムポリシマネージャに伝送する。例えば、ファームウェア118は、データ及び/又は関連データをメールボックス122に格納し、データ及び/又は関連データがメールボックス122に格納されたというメッセージを、OSPM114に伝送してよい。510において、オペレーティングシステムポリシマネージャは、バッファにアクセスし、データ及び/又は関連データを取得する。例えば、OSPM114は、メールボックス122におけるデータを取得し、データ及び/又は関連データを、実行又は処理のために、OS188に伝送してよい。
図6を参照すると、図6は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー600の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー600の1つ又は複数のオペレーションは、OSPM114、PPM124、及びLPM126a−126dの1つ又は複数によって実行されてよい。602において、セカンダリ電子デバイスとの通信を行うインタフェースは、データをローカルポリシマネージャに伝送する。例えば、マルチモーダルインタフェース106aは、データをLPM126aに伝送してよい。データは、インタフェース128を介してセカンダリデバイス104aから受信されていたものであってよく、インタフェース128aがマルチモーダルインタフェース106aから切断された結果、又は何らかの他の通信もしくはイベントの結果であってよい。604において、ローカルポリシマネージャは、データ及び/又は関連データをプラットフォームポリシマネージャに伝送する。606において、プラットフォームポリシマネージャは、データ及び/又は関連データをオペレーティングシステムポリシマネージャに伝送する。例えば、PPM124は、データ及び/又は関連データをOSPM114に直接伝送してよく、ファームウェア118及びメールボックス122を用いて、データ及び/又は関連データをOSPM114に伝送してよく、又は、何らかの他の経路又は手段を用いて、データ及び/又は関連データをOSPM114に伝送してよい。
図7を参照すると、図7は、実施形態に係るマルチモーダルインタフェースに関連し得る可能なオペレーションを示す例示的なタイミングフロー図である。実施形態において、LPM126aは、アラート通知をPPM124に送信する。PPM124は、アラートをファームウェア118にコピーする。例において、PPM124は、動作領域116を用いて、アラートをファームウェア118にコピーしてよい。ファームウェア118は、アラートをメールボックス122にコピーし、ファームウェア118は、アラートについてOSPM114に通知する。OSPM144は、情報について、メールボックス122におけるアラートを読み出し、アラートを処理し、受信確認をメールボックス122に送信する。OSPM144は、OSPM144がデータをメールボックス122に配したという通知を、ファームウェア118にさらに送信する。ファームウェア118は、受信確認詳細についてメールボックス122を読み出し、受信確認詳細をPPM124に伝送する。例において、ファームウェア118は、動作領域116を用いて、受信確認詳細をPPM124に伝送してよい。PPM124は、受信確認詳細をLPM126aに伝送し、LPM126aは、受信確認詳細を処理し、応答をPPM124に提供する。PPM124は、受信確認応答をファームウェア118にコピーする。例において、PPM124は、動作領域116を用いて、受信確認応答をファームウェア118にコピーしてよい。ファームウェア118は、受信確認応答をメールボックス122に配する。ファームウェア118は、メールボックス122における受信確認応答について、OSPM144に通知する。
図8を参照すると、図8は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー800の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー800の1つ又は複数のオペレーションは、OSPM114、PPM124、及びLPM126a−126dの1つ又は複数によって実行されてよい。802において、コマンドが、デバイスから送信される。804において、システムは、コマンドがリセットコマンドであったか否かを判断する。コマンドがリセットコマンドであった場合、リセット完了インジケータが、806に示すように、デバイスによって受信される。
コマンドがリセットコマンドではなかった場合、システムは、808に示すように、ビジーインジケータがコマンドに応答して受信されたか否かを判断する。ビジーインジケータがコマンドに応答して受信されなかった場合、コマンド完了通知が、810に示すように、デバイスによって受信される。812において、コマンド完了が受信確認される。ビジーインジケータがコマンドに応答して受信された場合、システムは、814に示すように、コマンドがキャンセルされるべきか否かを判断する。コマンドがキャンセルされるべき場合、コマンドキャンセルメッセージが、810に示すように送信される。コマンドがキャンセルされるべきではない場合、デバイスは、816に示すように、コマンドへの応答を待つ。810において、コマンド完了通知が受信され、コマンド完了が、812に示すように受信確認される。
図9を参照すると、図9は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー900の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー900の1つ又は複数のオペレーションは、OSPM114、PPM124、及びLPM126a−126dの1つ又は複数によって実行されてよい。902において、コマンドが、デバイスにおいて受信される。904において、システムは、コマンドがリセットコマンドであったか否かを判断する。コマンドがリセットコマンドであった場合、デバイスは、906に示すようにリセットされる。908において、リセットインジケータが送信される。
コマンドがリセットコマンドではなかった場合、システムは、910に示すように、デバイスがビジーであるか否かを判断する。デバイスがビジーではない場合、コマンドは、922に示すように完了し、コマンド完了通知が、924に示すように送信される。デバイスがビジーである場合、システムは、912に示すように、コマンドが現コマンドキャンセルメッセージであるか否かを判断する。コマンドが現コマンドキャンセルメッセージである場合、現コマンドは、914に示すようにキャンセルされ、コマンドキャンセル受信確認が、916に示すように送信される。コマンドが現コマンドキャンセルメッセージではない場合、ビジーインジケータが、918に示すように送信される。920において、システムは、デバイスがビジーであるか否かを判断する。デバイスがビジーである場合、システムは、920に示すように、デバイスがビジーであるか否かを再確認する。デバイスがビジーではない場合、コマンドは、922に示すように完了し、コマンド完了通知が、924に示すように送信される。
図10を参照すると、図10は、実施形態に係る、マルチモーダルインタフェースに関連し得る可能な詳細を示す例示的な簡略化されたデータ構造テーブル1000であり、OSPM114とPPM124との間で情報を受け渡すために用いられるメモリ位置の構造の一例が、図10のテーブル1000に示される。実施形態において、データ構造テーブル1000は、オフセット列1002、名称列1004、メモリ位置列1006、方向列1008、及びサイズ列1010を含んでよい。名称列1004は、データ構造の名称、例えば、バージョン1012、予約1014、コネクタ変更指示(CCI)1016、制御1018、入力メッセージ1020、及び出力メッセージ1022を含んでよい。
方向列1008は、各メモリ位置が利用可能な方向を含んでよい。例えば、PPM→OPMは、PPM124が情報をOSPM114に渡すためにそのメモリ位置を用いることを示す。当該位置は、OSPM114に関する限り、読み出しのみ(RO)である。同様に、OPM→PPMは、OSPM114が、情報をPPM124に渡すためにそのメモリ位置を用いることを示す。当該位置は、PPM124に関する限り、ROである。名称列1004は、通信システム100において利用可能な、例示的なデータ構造の名称を含んでよい。
例えば、バージョン1012は、バージョンデータ構造を含んでよい。バージョンデータ構造は、PPM124が準拠する二進化十進数(BCD)バージョンを含んでよい。予約1014は、メモリの予約されたエリアであってよい。CCI1016は、CCIデータ構造を含んでよい。CCIデータ構造は、OSPM114によってPPM124に送信されたコマンドに対するPPM124からの応答、及びマルチモーダルインタフェース106a−106dにおいて生じた非同期ステータス変更通知を含んでよい。制御1018は、制御データ構造を含んでよい。制御データ構造は、PPM124によって実行されるべきコマンドを示してよい。入力メッセージ1020は、入力メッセージデータ構造を含んでよい。入力メッセージデータ構造は、PPM124がOSPM114に送信することを望むデータを含んでよい。出力メッセージ1022は、出力メッセージデータ構造を含んでよい。出力メッセージデータ構造は、PPM124に送信されるべきデータを含んでよい。入力メッセージ及び出力メッセージデータ構造のフォーマットは、コマンド固有であってよい。
さらに、様々なコマンドが、OSPM114によってPPM124に送信され、マルチモーダルインタフェース106a−106dを構成し、かつ動作させてよい。図示の一例において、PPMリセットコマンドは、PPM124をリセットするために用いられてよい。PPMリセットコマンドは、任意の時にOSPM114によってPPM124に送信されてよい。PPMリセットコマンドを受信すると、PPM124は、PPM124との通信を行う各マルチモーダルインタフェース106a−106dに対して、ハードリセットを実行してよい。キャンセルコマンドは、前にPPM124に送信されたコマンドをキャンセルするために用いられてよい。コネクタリセットコマンドは、マルチモーダルインタフェース106a−106dをリセットするために用いられてよい。コマンド完了及び/又は変更指示受信確認は、OSPM114がコマンド完了及び/又はコネクタ変更指示を受信及び処理したという受信確認を、PPM124に伝送するために用いられてよい。通知有効化設定コマンドは、PPM124がOSPM114にそれに関する通知を送信可能な非同期イベントのリストを設定するために用いられてよい。
能力取得コマンドは、PPM124の能力を取得するために用いられてよい。コネクタ能力取得は、マルチモーダルインタフェース106a−106dの能力を取得するために用いられてよい。オペレーションモード設定は、OSPM114がマルチモーダルインタフェース106a−106dに望むオペレーションモードを設定するために用いられてよい。例えば、動作モード設定は、マルチモーダルインタフェース106aを具体的なUSB動作モードに設定するために用いられてよい。
オルタネートモード取得は、セカンダリデバイス(例えば、セカンダリデバイス104a)がサポートするオルタネートモードを判断するために用いられてよい。サポートコネクタオルタネートモード取得コマンドは、マルチモーダルインタフェース106a−106dにおいて、又はこれらによってサポートされるオルタネートモードのリストを判断するために用いられてよい。現コネクタオルタネートモード取得コマンドは、マルチモーダルインタフェース(例えば、マルチモーダルインタフェース106a)が動作する現在のオルタネートモードを判断するために用いられてよい。新コネクタオルタネートモード設定コマンドは、マルチモーダルインタフェース(例えば、マルチモーダルインタフェース106a)が動作することをOSPM114が望む新たなオルタネートモードを設定するために用いられてよい。
電力伝送オブジェクト(PDO)取得コマンドは、マルチモーダルインタフェース(例えば、マルチモーダルインタフェース106a)に関連するシンク又はソースPDOを取得するために用いられてよい。電力役割設定コマンドは、マルチモーダルインタフェース(例えば、マルチモーダルインタフェース106a)の送電方向(ソース又はシンクのいずれか)を設定するために用いられてよい。ケーブル特性取得コマンドは、マルチモーダルインタフェース(例えば、マルチモーダルインタフェース106a)に付属するケーブル又は何らかの他のタイプの通信もしくはデータコネクタの特性を取得するために用いられてよい。コネクタステータス取得コマンドは、マルチモーダルインタフェース(例えば、マルチモーダルインタフェース106a)の現在のステータス(例えば、電力役割、データ役割、構成されるオルタネートモード等)を取得するために用いられてよい。
PPM124が初期化すると、PPM124は、任意のOS108のインタラクションなしで、機能することが期待される。内部初期化が完了すると、PPM124は、PPMアイドル(通知無効化)状態にあってよい。PPM124は、OSPM114が通知有効化設定コマンドを介して1つ又は複数の通知を有効化するまで、OSPM114にいずれの動作も通知しなくてよい。通知有効化設定コマンドが成功裡に完了すると、PPM124は、PPMアイドル(通知有効化)状態に移行してよい。PPM124がPPMアイドル(通知無効化)状態において処理することを必要とされるコマンドは、通知有効化設定コマンド及びPPMリセットコマンドのみである。
例示的なオペレーションのモデルにおいて、OSPM114は、一時に最大で1つのコマンドをPPM124に送信してよい。一度コマンドが送信されると、OSPM114は、次のコマンドを送信する前に、PPM124が現コマンドを完了するまで待たなければならない。PPM124は、コマンド完了通知が有効化された場合には、当該コマンドを完了したときにOSPM114に通知してよい。コマンドが1つというルールの例外は、キャンセルコマンド及びPPMリセットコマンドのみである。PPMリセットコマンドは、OSPM114によって任意の時に送信されてよい。キャンセルコマンドは、OSPM114がPPMビジー応答を前に受信し、OSPM114が現行のコマンドをキャンセルすることを望む場合にのみ、OSPM114によって送信されなければならない。また、PPM124は、一時に1つの通知のみをOSPM114に送信してよい。PPM124は、次の通知を送信する前に、OSPM114が(非同期イベントに起因する)通知を受信確認するまで待ってよい。
キャンセルコマンド又はPPMリセットコマンド以外のコマンドを受信すると、PPM124は、コマンドを実行してよく、又は、PPM124がビジーである、もしくはPPM124がコマンド完了のために予め定められた時間長(例えば、10ms)より長い時間を使う場合、CCIデータ構造にビジーインジケータを設定してよい。コマンドを実行すると、PPM124は、CCIデータ構造を設定してよく、任意選択的に、ステータス及び入力メッセージデータ構造を更新してよい。コマンド完了通知がOSPM114によって有効化されていた場合、PPM124は、OSPM114にコマンド完了を通知してよい。
キャンセルコマンドを受信すると、PPM124は、それが実行していた現在のオペレーションをキャンセルしてよく、又は、PPM124がコマンドを現在処理していなかった場合には、キャンセル要求をドロップもしくは無視してよい。PPM124がキャンセルコマンドを成功裡に完了できた場合、PPMは、CCIデータ構造を更新し、キャンセル完了インジケータを1に設定してよい。コマンド完了通知がOSPM114によって有効化されていた場合、PPM124は、OSPM114にコマンド完了を通知してよい。
PPMリセットコマンドを受信すると、PPM124は、全ての通知を無効化し、自身をリセットしてCCIデータ構造にリセット完了インジケータを設定し、PPMアイドル(通知無効化)状態に移行してよい。OSPM114は、CCIデータ構造におけるリセット完了インジケータをポーリングしてよい。コネクタの1つ又は複数において非同期イベントが発生した場合、対応する通知がOSPM114によって有効化されていた場合には、PPM124は、CCI及びステータスデータ構造を更新し、OSPM114に通知してよい。一度OSPM114がコマンド完了及び/又は非同期イベントについて通知されると、OSPM114は、CCI、及び任意選択的にステータスデータ構造を読み出し、コマンド完了及び/又は変更指示受信確認コマンドを介して、通知を受信確認してよい。イベントが非同期イベントであった場合、OSPM114は、非同期イベントについての詳細を取得するために、それが必要とする任意の他のコマンドを送信してよい。
図11は、実施形態に係る、ポイントツーポイント(PtP)構成で配置されるコンピューティングシステム1100を示す。詳細には、図11は、プロセッサ、メモリ、及び入出力デバイスが多数のポイントツーポイントインタフェースによって相互接続されるシステムを示す。概して、通信システム100のネットワーク要素の1つ又は複数は、コンピューティングシステム1100と同じ又は同様の態様で構成されてよい。
図11に示されるように、システム1100は、いくつかのプロセッサを含んでよく、明確性のために、そのうちの2つのプロセッサ1170及び1180のみが示される。2つのプロセッサ1170及び1180が示されるが、システム1100の実施形態は、このようなプロセッサを1つだけ含んでもよいことを理解されたい。プロセッサ1170及び1180の各々は、コアのセット(すなわち、プロセッサコア1174A及び1174B、ならびにプロセッサコア1184A及び1184B)を含み、プログラムの複数のスレッドを実行してよい。コアは、図2−10を参照して上述されたものと同様の態様で、命令コードを実行するように構成されてよい。各プロセッサ1170、1180は、少なくとも1つの共有キャッシュ1171、1181を含んでよい。共有キャッシュ1171、1181は、プロセッサコア1174及び1184のような、プロセッサ1170、1180の1つ又は複数のコンポーネントによって用いられるデータ(例えば、命令)を格納してよい。
プロセッサ1170及び1180の各々は、統合メモリコントローラロジック(MC)1172及び1182を含み、メモリ要素1132及び1134と通信を行ってよい。メモリ要素1132及び/又は1134は、プロセッサ1170及び1180によって用いられる様々なデータを格納してよい。代替的な実施形態において、メモリコントローラロジック1172及び1182は、プロセッサ1170及び1180とは別個のディスクリートロジックであってよい。
プロセッサ1170及び1180は、任意のタイプのプロセッサであってよく、それぞれ、ポイントツーポイントインタフェース回路1178及び1188を用いたポイントツーポイント(PtP)インタフェース1150を介して、データを交換してよい。プロセッサ1170及び1180の各々は、ポイントツーポイントインタフェース回路1176、1186、1194及び1198を用いた個々のポイントツーポイントインタフェース1152及び1154を介して、制御ロジック1190とデータを交換してよい。制御ロジック1190は、PtPインタフェース回路たり得るインタフェース回路1192を用いた高性能グラフィクスインタフェース1139を介して、高性能グラフィクス回路1138とデータを交換してもよい。代替的な実施形態において、図11に示されるPtPリンクのいずれか又は全ては、PtPリンクではなく、マルチドロップバスとして実装されてよい。
制御ロジック1190は、インタフェース回路1196を介してバス1120との通信を行ってよい。バス1120は、それを介して通信を行う、バスブリッジ1118及びI/Oデバイス1116のような1つ又は複数のデバイスを有してよい。バス1110を介して、バスブリッジ1118は、キーボード/マウス1112のような他のデバイス(もしくはタッチスクリーン、トラックボール等のような他の入力デバイス)、(モデム、ネットワークインタフェースデバイス、もしくはコンピュータネットワーク1160を介して通信可能な他のタイプの通信デバイスのような)通信デバイス1126、オーディオI/Oデバイス1114、及び/又はデータストレージデバイス1128との通信を行ってよい。データストレージデバイス1128は、プロセッサ1170及び/又は1180によって実行可能なコード1130を格納してよい。代替的な実施形態において、バスアーキテクチャのいずれか一部は、1つ又は複数のPtPリンクにより実装されてよい。
図11に示されるコンピュータシステムは、本明細書で説明される様々な実施形態を実装するために利用可能なコンピューティングシステムの実施形態の模式図である。図11に示されるシステムの様々なコンポーネントは、システムオンチップ(SoC)アーキテクチャで、又は任意の他の好適な構成で組み合わせられてよいことが理解されよう。例えば、本明細書で開示される実施形態は、スマートセルラフォン、タブレットコンピュータ、パーソナルデジタルアシスタント、ポータブルゲームデバイス等のようなモバイルデバイスを含むシステムに組み込まれてよい。これらのモバイルデバイスは、少なくともいくつかの実施形態において、SoCアーキテクチャを備えてよいことが理解されよう。
図12を参照すると、図12は、本開示の例示的なARMエコシステムSOC1200に関連する簡略化されたブロック図である。本開示の少なくとも1つの例示的な実装は、本明細書で説明されるマルチモーダルインタフェース機能及びARMコンポーネントを含んでよい。例えば、図12の例は、任意のARMコア(例えば、A−9、A−15等)に関連してよい。さらに、アーキテクチャは、任意のタイプのタブレット、スマートフォン(Android(登録商標)phone、iPhone(登録商標)を含む)、iPad(登録商標)、Google Nexus(商標)、Microsoft Surface(商標)、パーソナルコンピュータ、サーバ、ビデオ処理コンポーネント、ラップトップコンピュータ(任意のタイプのノートブックを含む)、Ultrabook(商標)システム、任意のタイプのタッチ式入力デバイス等の一部であってよい。
図12の本例において、ARMエコシステムSOC1200は、複数のコア1206−1207、L2キャッシュ制御1208、バスインタフェースユニット1209、L2キャッシュ1210、グラフィクス処理ユニット(GPU)1215、相互接続1202、ビデオコーデック1220、及び液晶ディスプレイ(LCD)I/F1225を含んでよく、これらは、LCDに連結するモバイル産業プロセッサインタフェース(MIPI)/高精細度マルチメディアインタフェース(HDMI(登録商標))リンクに関連してよい。
ARMエコシステムSOC1200は、加入者識別モジュール(SIM)I/F1230、ブートリードオンリメモリ(ROM)1235、同期ダイナミックランダムアクセスメモリ(SDRAM)コントローラ1240、フラッシュコントローラ1245、シリアルペリフェラルインタフェース(SPI)マスタ1250、好適な電力制御1255、ダイナミックRAM(DRAM)1260、及びフラッシュ1265を含んでもよい。さらに、1つ又は複数の実施形態は、Bluetooth(登録商標)1270、3Gモデム1275、グローバルポジショニングシステム(GPS)1280、及び802.11Wi−Fi1285の例のような、1つ又は複数の通信能力、インタフェース、及び機能を含む。
オペレーションにおいて、図12の例は、比較的低い電力消費で様々なタイプのコンピューティング(例えば、モバイルコンピューティング、ハイエンドデジタルホーム、サーバ、無線インフラストラクチャ等)を有効化する処理能力を提供してよい。さらに、このようなアーキテクチャは、任意の数のソフトウェアアプリケーション(例えば、Android(登録商標)、Adobe(商標)Flash(商標)プレイヤ、Java(登録商標)プラットフォームスタンダードエディション(Java(登録商標)SE)、Java(登録商標)FX、Linux(登録商標)、Microsoft Windows(登録商標)Embedded、Symbian及びUbuntu等)を有効化してよい。少なくとも1つの実施形態において、コアプロセッサは、連結された低レイテンシのレベル2キャッシュを伴うアウトオブオーダスーパースカラパイプラインを実装してよい。
図13は、実施形態に係るプロセッサコア1300を示す。プロセッサコア1300は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、又はコードを実行する他のデバイスのような任意のタイプのプロセッサのコアであってよい。1つのプロセッサコア1300のみが図13に示されているが、代替的に、プロセッサは、図13に示されるプロセッサコア1300の1つより多くを含んでよい。例えば、プロセッサコア1300は、図11のプロセッサ1170及び1180を参照して図示及び説明されるプロセッサコア1174a、1174b、1184a及び1184bの実施形態を表す。プロセッサコア1300は、シングルスレッドコアであってよい。又は、少なくとも1つの実施形態では、プロセッサコア1300は、コア毎に1つより多くのハードウェアスレッドコンテキスト(もしくは「論理プロセッサ」)を含んでよいという点において、マルチスレッドであってよい。
図13は、実施形態に係るプロセッサコア1300に連結されるメモリ1302をさらに示す。メモリ1302は、当業者に公知又はその他利用可能な、多様なメモリ(メモリ階層の様々な層を含む)のいずれかであってよい。メモリ1302は、コード1304を含んでよく、これは、プロセッサコア1300によって実行されるべき1つ又は複数の命令であってよい。プロセッサコア1300は、コード1304によって示される命令のプログラムシーケンスに従ってよい。各命令は、フロントエンドロジック1306に入り、1つ又は複数のデコーダ1308によって処理される。デコーダは、その出力として、固定幅のマイクロオペレーションのようなマイクロオペレーションを、予め定義されたフォーマットで生成してよく、又は、元のコード命令を反映する他の命令、マイクロ命令、もしくは制御信号を生成してよい。フロントエンドロジック1306は、レジスタリネーミングロジック1310及びスケジューリングロジック1312をさらに含み、これらは、概して、実行のために、リソースを割り当て、命令に対応するオペレーションをキューに入れる。
プロセッサコア1300は、実行ユニット1316−1から1316−Nのセットを有する実行ロジック1314をさらに含んでよい。いくつかの実施形態は、具体的な機能又は機能のセット専用の多数の実行ユニットを含んでよい。他の実施形態は、実行ユニットを1つのみを含んでよく、又は特定の機能を実行する1つの実行ユニットを含んでよい。実行ロジック1314は、コード命令によって規定されるオペレーションを実行する。
コード命令によって規定されたオペレーションの実行完了後、バックエンドロジック1318は、コード1304の命令をリタイアさせてよい。一実施形態において、プロセッサコア1300は、アウトオブオーダでの実行を可能とするが、命令のインオーダでのリタイアを必要とする。リタイアロジック1320は、様々な公知の形式(例えば、リオーダバッファ等)をとってよい。このように、プロセッサコア1300は、コード1304の実行中に、少なくとも、デコーダによって生成される出力、レジスタリネーミングロジック1310によって用いられるハードウェアレジスタ及びテーブル、及び実行ロジック1314によって修正される任意のレジスタ(不図示)に関して、状態変化する。
図13には示されていないが、プロセッサは、プロセッサコア1300と共に、チップ上に他の要素を含んでよく、少なくともそのいくつかは、図11を参照して本明細書において図示及び説明されている。例えば、図11に示されるように、プロセッサは、プロセッサコア1300と共に、メモリ制御ロジックを含んでよい。プロセッサは、I/O制御ロジックを含んでよく、及び/又は、メモリ制御ロジックと統合されたI/O制御ロジックを含んでよい。
本明細書で提供される例により、2つ、3つ、又はこれより多くのネットワーク要素に関するインタラクションが説明される場合があることに留意されたい。しかしながら、これは、明確性及び例示目的のためだけになされたものである。特定の場合には、限定的な数のネットワーク要素のみを参照することによって、所与のセットのフローの1つ又は複数の機能を説明することがより容易になる場合がある。通信システム100及びその教示は、容易にスケーラブルとなり、多数のコンポーネント及びより複雑/洗練された配置及び構成に適応可能であることを理解されたい。従って、提供される例は、無数の他のアーキテクチャに潜在的適用されるものであり、通信システム100の範囲を限定する、又はその広範な教示を阻害するものではない。
前述のフロー図(すなわち、図2、3、5、6、8及び9)におけるオペレーションが、通信システム100によって、又はその内部で実行可能な、可能な相関シナリオ及びパターンのいくつかのみを示すものであることに留意することも重要である。これらのオペレーションのいくつかは、適宜削除もしくは除去されてよく、又は、これらのオペレーションは、本開示の範囲から逸脱することなく、大幅に変形もしくは変更されてよい。さらに、これら多数のオペレーションは、1つ又は複数の追加的なオペレーションと同時に、又はこれらと並列して、実行されるものとして説明されている。しかしながら、これらのオペレーションのタイミングは、大幅に変更されてよい。前述されたオペレーションのフローは、例示及び説明目的のために提供されている。任意の好適な配置、時系列性、構成、及びタイミングのメカニズムが本開示の教示から逸脱することなく提供可能である点で、実質的な柔軟性が、通信システム100によって提供されている。
本開示は、特定の配置及び構成を参照して詳細に説明されたが、これらの例示的な構成及び配置は、本開示の範囲から逸脱することなく、大幅に変更されてよい。さらに、特定のコンポーネントが、特定の必要性及び実装に基づいて、組み合わせられ、分離され、削除され、又は追加されてよい。追加的に、通信システム100は、通信処理を容易にする特定の要素及びオペレーションを参照して示されたが、これらの要素及びオペレーションは、通信システム100の意図される機能を実現する任意の好適なアーキテクチャ、プロトコル、及び/又は処理によって置換されてよい。
多数の他の変化、代替、バリエーション、変更、及び変形が、当業者によって確認されることができ、本開示は、全てのこのような変化、代替、バリエーション、変更、及び変形を、添付の特許請求の範囲の範囲に属するものとして包含することが意図されている。米国特許商標庁(USPTO)、及び追加的に、本願に対して発行されたあらゆる特許のあらゆる読者が、本明細書に添付された特許請求の範囲を解釈するにあたってこれを支援するために、出願人は、出願人が(a)「手段」又は「段階」という単語が特定の請求項において具体的に用いられない限り、添付の特許請求の範囲のいずれかが、本願の出願日に現に存する米国特許法セクション112第6パラグラフを適用することを意図するものではなく、(b)本明細書におけるいずれの記述によっても、添付の特許請求の範囲に反映されていないいずれかの態様で、本開示を限定することを意図していないことに留意されることを希望する。
他の説明及び例 例M1は、電子デバイスにおけるオペレーティングシステムからデータを受信する段階と、データ及び/又は関連データをローカルポリシマネージャに伝送する段階と、を含む方法である。ローカルポリシマネージャは、マルチモーダルインタフェースとの通信を行ってよく、データは、マルチモーダルインタフェースを介して電子デバイスとの通信を行うハードウェアに関するものであってよい。
例M2において、例M1の主題は、任意選択的に、マルチモーダルインタフェースが同じインタフェースにおいて、送電、方向性、及び複数の入出力(I/O)プロトコルをサポートするように構成されることを含んでよい。
例M3において、例M1−M2のいずれか1つの主題では、任意選択的に、受信されたデータが、それが受信される前に、ファームウェアを通過していてよい。
例M4において、例M1−M3のいずれか1つの主題では、任意選択的に、受信されたデータは、それが受信される前に、ファームウェアによって動作領域に書き込まれていてよい。
例M5において、例M1−M4のいずれか1つの主題は、任意選択的に、受信されたデータは、それが受信される前に、共有メモリに格納されていることを含んでよい。
例M6において、例M1−M5のいずれか1つの主題は、任意選択的に、ハードウェアに関連する応答データを、ローカルポリシマネージャから受信する段階と、応答データ及び/又は関連応答データを共有メモリに伝送する段階と、を含んでよい。
例M7において、例M1−M6のいずれか1つの主題は、任意選択的に、データは、プラットフォームポリシマネージャにおいて受信され、プラットフォームポリシマネージャは、複数のローカルポリシプラットフォームマネージャとの通信を行い、複数のローカルポリシプラットフォームマネージャの各々は、異なるタイプのハードウェアとの通信を行うことを含んでよい。
例A1において、マルチモーダルインタフェースとの通信を行うための装置は、電子デバイスにおけるオペレーティングシステムから、マルチモーダルインタフェースを介して電子デバイスとの通信を行うハードウェアに関連するデータを受信し、データ及び/又は関連データをローカルポリシマネージャに伝送するように構成されるプラットフォームポリシマネージャを含んでよく、ローカルポリシプラットフォームマネージャは、マルチモーダルインタフェースとの通信を行う。
例A2において、例A1の主題は、任意選択的に、マルチモーダルインタフェースが同じインタフェースにおいて、送電、方向性、及び複数の入出力(I/O)プロトコルをサポートするように構成されることを含んでよい。
例A3において、例A1−A2のいずれか1つの主題は、任意選択的に、受信されたデータが、ファームウェアを通過していることを含んでよい。
例A4において、例A1−A3のいずれか1つの主題は、任意選択的に、受信されたデータは、それが受信される前に、ファームウェアによって動作領域に書き込まれていることを含んでよい。
例A5において、例A1−A4のいずれか1つの主題は、任意選択的に、受信されたデータは、それが受信される前に、共有メモリに格納されていることを含んでよい。
例A6において、例A1−A5のいずれか1つの主題は、任意選択的に、プラットフォームポリシマネージャは、ローカルポリシマネージャから、ハードウェアに関連する応答データを受信し、応答データ及び/又は関連応答データを共有メモリに伝送するようにさらに構成可能であることを含んでよい。
例C1は、少なくとも1つの機械可読記憶媒体であって、電子デバイスにおけるオペレーティングシステムから、マルチモーダルインタフェースを介して電子デバイスとの通信を行うハードウェアに関連するデータを受信することと、データ及び/又は関連データを、マルチモーダルインタフェースとの通信を行うローカルポリシマネージャに伝送することと、を、少なくとも1つのプロセッサによって実行された場合に、少なくとも1つの機械可読媒体に実行させる1つ又は複数の命令を有してよい。
例C2において、例C1の主題は、任意選択的に、マルチモーダルインタフェースが同じインタフェースにおいて、送電、方向性、及び複数の入出力(I/O)プロトコルをサポートするように構成されることを含んでよい。
例C3において、例C1−C2のいずれか1つの主題は、任意選択的に、受信されたデータが、ファームウェアを通過していることを含んでよい。
例C4において、例C1−C3のいずれか1つの主題は、任意選択的に、受信されたデータは、それが受信される前に、ファームウェアによって動作領域に書き込まれていることを含んでよい。
例C5において、例C1−C4のいずれか1つの主題は、任意選択的に、受信されたデータは、それが受信される前に、共有メモリに格納されていることを含んでよい。
例C6において、例C1−C5のいずれか1つの主題は、任意選択的に、ローカルポリシプラットフォームから、ハードウェアに関連する応答データを受信することと、応答データ及び/又は関連応答データを共有メモリに伝送することと、を少なくとも1つのプロセッサによって実行された場合に、機械可読媒体に実行させる1つ又は複数の命令を含んでよい。
例S1は、異なるタイプのハードウェアとの通信を行うためのマルチモーダルインタフェースシステムであって、システムは、電子デバイスにおけるオペレーティングシステムから、マルチモーダルインタフェースを介して電子デバイスとの通信を行うハードウェアに関連するデータを受信し、データ及び/又は関連データを、マルチモーダルインタフェースとの通信を行うローカルポリシマネージャに伝送するように構成されるプラットフォームポリシマネージャを含む。
例S2において、例S1の主題は、任意選択的に、マルチモーダルインタフェースが同じインタフェースにおいて、送電、方向性、及び複数の入出力(I/O)プロトコルをサポートするように構成されることを含んでよい。
例S3において、例S1−S2のいずれかの主題は、任意選択的に、受信されたデータが、ファームウェアを通過していることを含んでよい。
例S4において、例S1−S3のいずれかの主題は、任意選択的に、受信されたデータは、それが受信される前に、ファームウェアによって動作領域に書き込まれていることを含んでよい。
例S5において、例S1−S4のいずれかの主題は、任意選択的に、受信されたデータは、それが受信される前に、共有メモリに格納されていることを含んでよい。
例X1は、例A1−A6、又はM1−M7のいずれか1つに示す方法を実装する、又は装置を実現する機械可読命令を含む機械可読記憶媒体である。例Y1は、例示的な方法M1−M7のいずれかを実行する手段を備える装置である。例Y2において、例Y1の主題は、任意選択的に、プロセッサ及びメモリを備える方法を実行するための手段を含んでよい。例Y3において、例Y2の主題は、任意選択的に、機械可読命令を備えるメモリを含んでよい。