(57)【特許請求の範囲】
【請求項１】
電子デバイスにおけるオペレーティングシステムから、マルチモーダルインタフェースを介して前記電子デバイスとの通信を行うハードウェアに関連するデータをプラットフォームポリシマネージャが受信する段階であって、前記ハードウェアは、前記オペレーティングシステムからファームウェアに抽象化されている段階と、
前記プラットフォームポリシマネージャは、複数のローカルポリシマネージャとの通信を行い、前記プラットフォームポリシマネージャによって、前記データまたは前記データに関連する命令の少なくとも１つを、前記マルチモーダルインタフェースとの通信を行うローカルポリシマネージャに伝送する段階と、
を備え、
前記受信されたデータは、それが受信される前に、前記ファームウェアを通過しており、
前記複数のローカルポリシマネージャは、前記ハードウェアとコマンドレベルの通信を行い、前記複数のローカルポリシマネージャの各々は、異なるタイプのハードウェアとの通信を行う方法。
【請求項２】
前記マルチモーダルインタフェースは、第１のマルチモーダルインタフェースと、第２のマルチモーダルインタフェースとを含み、
前記複数のローカルポリシマネージャは、第１のローカルポリシマネージャと、第２のローカルポリシマネージャとを含み、
前記第１のマルチモーダルインタフェースは、前記第１のローカルポリシマネージャに対応して設けられ、
前記第２のマルチモーダルインタフェースは、前記第２のローカルポリシマネージャに対応して設けられる、請求項１に記載の方法。
【請求項３】
前記マルチモーダルインタフェースは、同じインタフェースにおいて、送電、方向性、及び複数の入出力（Ｉ／Ｏ）プロトコルをサポートする、請求項１または２に記載の方法。
【請求項４】
前記受信されたデータは、それが受信される前に、前記ファームウェアによって動作領域に書き込まれている、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記受信されたデータは、それが受信される前に、共有メモリに格納されている、請求項１から３のいずれか１項に記載の方法。
【請求項６】
前記ローカルポリシマネージャから、前記ハードウェアに関連する応答データを受信する段階と、
前記応答データまたは前記応答データに関連する命令の少なくとも１つを共有メモリに伝送する段階と、
をさらに備える、請求項１から３のいずれか１項に記載の方法。
【請求項７】
前記共有メモリは、前記マルチモーダルインタフェースの仕様に基づくデータ構造を有する
請求項５または６に記載の方法。
【請求項８】
マルチモーダルインタフェースとの通信を行うための装置であって、
電子デバイスにおけるオペレーティングシステムから、マルチモーダルインタフェースを介して前記電子デバイスとの通信を行うハードウェアに関連するデータを受信し、前記データまたは前記データに関連する命令の少なくとも１つを、前記マルチモーダルインタフェースとの通信を行う複数のローカルポリシマネージャに伝送するプラットフォームポリシマネージャを備え、
前記ハードウェアは、前記オペレーティングシステムからファームウェアに抽象化され、
前記受信されたデータは、前記ファームウェアを通過しており、
前記複数のローカルポリシマネージャは、前記ハードウェアとコマンドレベルの通信を行い、前記複数のローカルポリシマネージャの各々は、異なるタイプのハードウェアとの通信を行う、装置。
【請求項９】
前記マルチモーダルインタフェースは、第１のマルチモーダルインタフェースと、第２のマルチモーダルインタフェースとを含み、
前記複数のローカルポリシマネージャは、第１のローカルポリシマネージャと、第２のローカルポリシマネージャとを含み、
前記第１のマルチモーダルインタフェースは、前記第１のローカルポリシマネージャに対応して設けられ、
前記第２のマルチモーダルインタフェースは、前記第２のローカルポリシマネージャに対応して設けられる、請求項８に記載の装置。
【請求項１０】
前記マルチモーダルインタフェースは、同じインタフェースにおいて、送電、方向性、及び複数の入出力（Ｉ／Ｏ）プロトコルをサポートする、請求項８または９に記載の装置。
【請求項１１】
前記受信されたデータは、それが受信される前に、前記ファームウェアによって動作領域に書き込まれている、請求項８から１０のいずれか１項に記載の装置。
【請求項１２】
前記受信されたデータは、それが受信される前に、共有メモリに格納されている、請求項８から１０のいずれか１項に記載の装置。
【請求項１３】
前記プラットフォームポリシマネージャは、さらに、前記複数のローカルポリシマネージャから、前記ハードウェアに関連する応答データを受信し、前記応答データまたは前記応答データに関連する命令の少なくとも１つを共有メモリに伝送することが可能である、請求項８から１０のいずれか１項に記載の装置。
【請求項１４】
前記共有メモリは、前記マルチモーダルインタフェースの仕様に基づくデータ構造を有する
請求項１２または１３に記載の装置。
【請求項１５】
プラットフォームポリシマネージャによって、電子デバイスにおけるオペレーティングシステムから、マルチモーダルインタフェースを介して前記電子デバイスとの通信を行うハードウェアに関連するデータを受信することと、
前記プラットフォームポリシマネージャによって、前記データまたは前記データに関連する命令の少なくとも１つを、前記マルチモーダルインタフェースとの通信を行う複数のローカルポリシマネージャに伝送することと、
前記ハードウェアは、前記オペレーティングシステムからファームウェアに抽象化されることと、
前記受信されたデータは、前記ファームウェアを通過していることと、
前記複数のローカルポリシマネージャは、前記ハードウェアとコマンドレベルの通信を行うことと、
前記複数のローカルポリシマネージャの各々は、異なるタイプのハードウェアとの通信を行うことと、
を、少なくとも１つのプロセッサに実行させるプログラム。
【請求項１６】
前記マルチモーダルインタフェースは、第１のマルチモーダルインタフェースと、第２のマルチモーダルインタフェースとを含み、
前記複数のローカルポリシマネージャは、第１のローカルポリシマネージャと、第２のローカルポリシマネージャとを含み、
前記第１のマルチモーダルインタフェースは、前記第１のローカルポリシマネージャに対応して設けられ、
前記第２のマルチモーダルインタフェースは、前記第２のローカルポリシマネージャに対応して設けられる、請求項１５に記載のプログラム。
【請求項１７】
前記マルチモーダルインタフェースは、同じインタフェースにおいて、送電、方向性、及び複数の入出力（Ｉ／Ｏ）プロトコルをサポートする、請求項１５または１６に記載のプログラム。
【請求項１８】
前記受信されたデータは、それが受信される前に、前記ファームウェアによって動作領域に書き込まれている、請求項１５から１７のいずれか１項に記載のプログラム。
【請求項１９】
前記受信されたデータは、それが受信される前に、共有メモリに格納されている、請求項１５から１７のいずれか１項に記載のプログラム。
【請求項２０】
前記複数のローカルポリシマネージャから、前記ハードウェアに関連する応答データを受信することと、
前記応答データまたは前記応答データに関連する命令の少なくとも１つを共有メモリに伝送することと、
を前記少なくとも１つのプロセッサにさらに実行させる、請求項１５から１７のいずれか１項に記載のプログラム。
【請求項２１】
前記共有メモリは、前記マルチモーダルインタフェースの仕様に基づくデータ構造を有する
請求項１９または２０に記載のプログラム。
【請求項２２】
異なるタイプのハードウェアとの通信を行うためのマルチモーダルインタフェースシステムであって、
電子デバイスにおけるオペレーティングシステムから、マルチモーダルインタフェースを介して前記電子デバイスとの通信を行うハードウェアに関連するデータを受信し、前記データまたは前記データに関連する命令の少なくとも１つを、前記マルチモーダルインタフェースとの通信を行う複数のローカルポリシマネージャに伝送するプラットフォームポリシマネージャを備え、
前記ハードウェアは、前記オペレーティングシステムからファームウェアに抽象化され、
前記受信されたデータは、前記ファームウェアを通過しており、
前記複数のローカルポリシマネージャは、前記ハードウェアとコマンドレベルの通信を行い、前記複数のローカルポリシマネージャの各々は、前記異なるタイプのハードウェとの通信を行う、
マルチモーダルインタフェースシステム。
【請求項２３】
前記マルチモーダルインタフェースは、第１のマルチモーダルインタフェースと、第２のマルチモーダルインタフェースとを含み、
前記複数のローカルポリシマネージャは、第１のローカルポリシマネージャと、第２のローカルポリシマネージャとを含み、
前記第１のマルチモーダルインタフェースは、前記第１のローカルポリシマネージャに対応して設けられ、
前記第２のマルチモーダルインタフェースは、前記第２のローカルポリシマネージャに対応して設けられる、請求項２２に記載のマルチモーダルインタフェースシステム。
【請求項２４】
前記マルチモーダルインタフェースは、同じインタフェースにおいて、送電、方向性、及び複数の入出力（Ｉ／Ｏ）プロトコルをサポートする、請求項２２または２３に記載のマルチモーダルインタフェースシステム。
【請求項２５】
前記受信されたデータは、それが受信される前に、前記ファームウェアによって動作領域に書き込まれている、請求項２２から２４のいずれか一項に記載のマルチモーダルインタフェースシステム。
【請求項２６】
前記受信されたデータは、それが受信される前に、共有メモリに格納されている、請求項２２から２４のいずれか１項に記載のマルチモーダルインタフェースシステム。
【請求項２７】
前記プラットフォームポリシマネージャは、さらに、前記複数のローカルポリシマネージャから、前記ハードウェアに関連する応答データを受信し、前記応答データまたは前記応答データに関連する命令の少なくとも１つを共有メモリに伝送することが可能である、請求項２２から２５のいずれか１項に記載のマルチモーダルインタフェースシステム。
【請求項２８】
前記共有メモリは、前記マルチモーダルインタフェースの仕様に基づくデータ構造を有する
請求項２６または２７に記載のマルチモーダルインタフェースシステム。
【請求項２９】
請求項１５から２１のいずれか１項に記載のプログラムを格納する機械可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
本願は、２０１５年４月１８日に出願された、発明の名称を「マルチモーダルインタフェース」とするインド非仮特許出願第２００４／ＣＨＥ／２０１５号の利益及びこれに対する優先権を主張し、これは、その全体において参照により本明細書に組み込まれる。
【０００２】
本開示は、概して、電子デバイスの分野に関し、より詳細には、マルチモーダルインタフェースに関する。
【背景技術】
【０００３】
エンドユーザは、従前よりも多くの電子デバイスの選択肢を有する。多数の秀逸な技術的トレンドが現在進行中であり（例えば、より多くのコンピューティングデバイス、より多くの取り外し可能ディスプレイ、より多くの周辺機器等）、これらのトレンドは、電子デバイスの大勢を変化させている。技術的トレンドの１つは、多数のデバイスを電子デバイスに接続することである。多くの例では、デバイスの各々は、デバイスを電子デバイスに接続する専用かつ固有のコネクタを有し、１つのコネクタは、他のコネクタとして動作又は機能しなくてよい。例えば、ユニバーサルシリアルバス（ＵＳＢ）コネクタは、ディスプレイ高精細度マルチメディアインタフェース（ＨＤＭＩ（登録商標））コネクタとは異なる。従って、複数のデバイスをサポート可能な統一されたコネクタを実現する電子デバイスの提供には、課題が存在する。
【図面の簡単な説明】
【０００４】
本開示ならびにその機能及び利点をより十分に理解せしめるべく、添付図と併せて、以下の説明が参照される。ここで、同様の参照番号は、同様の部分を表す。
【０００５】
【図１】本開示の実施形態に係る通信システムの実施形態を示す電子デバイスの簡略化されたブロック図である。
【０００６】
【図２】実施形態に係る通信システムに関連し得る可能なオペレーションを示す簡略化されたフローチャートである。
【０００７】
【図３】実施形態に係る通信システムに関連し得る可能なオペレーションを示す簡略化されたフローチャートである。
【０００８】
【図４Ａ】実施形態に係る通信システムに関連し得る可能なオペレーションを示す簡略化されたタイミングフロー図である。
【図４Ｂ】実施形態に係る通信システムに関連し得る可能なオペレーションを示す簡略化されたタイミングフロー図である。
【０００９】
【図５】実施形態に係る通信システムに関連し得る可能なオペレーションを示す簡略化されたフローチャートである。
【００１０】
【図６】実施形態に係る通信システムに関連し得る可能なオペレーションを示す簡略化されたフローチャートである。
【００１１】
【図７】実施形態に係る通信システムに関連し得る可能なオペレーションを示す簡略化されたタイミングフロー図である。
【００１２】
【図８】実施形態に係る通信システムに関連し得る可能なオペレーションを示す簡略化されたフローチャートである。
【００１３】
【図９】実施形態に係る通信システムに関連し得る可能なオペレーションを示す簡略化されたフローチャートである。
【００１４】
【図１０】実施形態に係る通信システムに関連し得る可能な詳細を示す簡略化されたデータ構造テーブルである。
【００１５】
【図１１】実施形態に係るポイントツーポイント構成に配置された例示的なコンピューティングシステムを示すブロック図である。
【００１６】
【図１２】本開示の例示的なＡＲＭエコシステムのシステムオンチップ（ＳＯＣ）に関連する簡略化されたブロック図である。
【００１７】
【図１３】実施形態に係る例示的なプロセッサコアを示すブロック図である。
【００１８】
図面中のこれらの図は、これらの寸法が本開示の範囲から逸脱することなく大幅に変更されてよく、必ずしも縮尺に従って示されているものではない。
【発明を実施するための形態】
【００１９】
［例示的な実施形態］
図１は、本開示の実施形態に係るマルチモーダルインタフェースを有する通信システム１００の実施形態の簡略化されたブロック図である。通信システム１００は、電子デバイス１０２と、１つ又は複数のセカンダリデバイス１０４ａ−１０４ｄとを含んでよい。各セカンダリデバイス１０４ａ−１０４ｃは、それぞれ、インタフェース１２８ａ−１２８ｃを含んでよい。例において、１つ又は複数のセカンダリデバイスは、無線通信を可能にする無線モジュールを含んでよい。例えば、セカンダリデバイス１０４ｄは、無線モジュール１３０ａを含むものとして示される。
【００２０】
電子デバイス１０２は、オペレーティングシステム（ＯＳ）１０８と、プロセッサ１１０と、メモリ１１２と、ＯＳポリシマネージャ（ＯＳＰＭ）１１４と、動作領域（ｏｐｒｅｇｉｏｎ）１１６と、ファームウェア１１８と、プラットフォームポリシマネージャ（ＰＰＭ）１２４と、１つ又は複数のローカルポリシマネージャ（ＬＰＭ）１２６ａ−１２６ｄと、１つ又は複数のマルチモーダルインタフェース１０６ａ−１０６ｄと、を含んでよい。メモリ１１２は、メールボックス１２２を含んでよい。メールボックス１２２は、メモリ１１２におけるバッファであってよい。ＰＰＭ１２４は、システムホストコントローラ１２０を含んでよい。例において、１つ又は複数のマルチモーダルインタフェースは、無線通信を可能にする無線モジュールを含んでよい。例えば、マルチモーダルインタフェース１０６ｄは、無線モジュール１３０ｂを含むものとして示される。他の例において、無線モジュール１３０ｂは、電子デバイス１０２に含まれ、そのリソースは、複数のマルチモーダルインタフェースによって共有されてよい。セカンダリデバイス１０４ｄは、無線モジュール１３０ａ及び１３０ｂを用いて、電子デバイス１０２との無線通信を行ってよい。
【００２１】
実施形態において、各マルチモーダルインタフェース１０６ａ−１０６ｄは、対応するＬＰＭ１２６ａ−１２６ｄを有してよい。例えば、マルチモーダルインタフェース１０６ａは、ＬＰＭ１２６ａに対応してよく、マルチモーダルインタフェース１０６ｂは、ＬＰＭ１２６ｂに対応してよく、マルチモーダルインタフェース１０６ｃは、ＬＰＭ１２６ｃに対応してよく、マルチモーダルインタフェース１０６ｄは、ＬＰＭ１２６ｄに対応してよい。各マルチモーダルインタフェース１０６ａ−１０６ｄは、同じインタフェースにおいて、送電、方向性、及び複数の入出力（Ｉ／Ｏ）プロトコルをサポート可能なマルチモーダルインタフェースであってよい。複数のプロトコルは、ユーザの介入なく、マルチモーダルインタフェース又はコネクタにおいて、同時に、又はこれら自身によって実行されるように、自動的に構成されてよい。例えば、各セカンダリデバイス１０４ａ−１０４ｄは、異なる電子デバイスであってよく、単一のマルチモーダルインタフェース（例えば、マルチモーダルインタフェース１０６ａ−１０６ｄの１つ）は、異なるセカンダリデバイス１０４ａ−１０４ｄの各々をサポート可能であってよい。
【００２２】
図１の要素は、任意の好適な接続（有線又は無線）を用いた１つ又は複数のインタフェースを介して、互いに連結されてよく、これにより、通信用に実行可能な経路を提供する。追加的に、図１のこれらの要素のいずれか１つ又は複数は、具体的な構成の必要性に基づいて組み合わせられてよく、又は、アーキテクチャから除去されてよい。通信システム１００は、ネットワークにおいてパケットを送信又は受信するために、送信制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）通信が可能な構成を含んでよい。通信システム１００は、適宜、特定の必要性に基づいて、ユーザデータグラムプロトコル／ＩＰ（ＵＤＰ／ＩＰ）又は任意の他の好適なプロトコルと併せて動作してもよい。
【００２３】
通信システム１００の特定の例示的技術を示す目的のために、通信環境を横断可能な通信を理解することが重要である。以下の基本的な情報は、本開示の適切な説明を可能とするための基礎として認識されてよい。
【００２４】
現在のシステムは、典型的には、ディスプレイコネクタ、オーディオコネクタ、電力コネクタ等のような具体的な機能を１つだけサポートする専用コネクタを有する。ユーザが従前よりも多くの電子デバイスの選択肢を有し、かつ、これらのデバイスに接続する必要性を有することにより、単一のコネクタにおいて複数の機能をサポートする統一されたコネクタが必要とされている。ＯＳ又はＩ／Ｏプロトコルに依存しないプラットフォームにおいて、統一されたコネクタが自動的に構成され、マルチモーダルコネクタの機能を用いることができれば有益であろう。
【００２５】
ＯＳが接続されたハードウェアと通信可能となるような解決手段を実装すべく、接続されたハードウェアの各々は、特定のプロトコルを介して、基礎となるハードウェアとの通信を行わなければならない。しかしながら、ソフトウェアドライバはＯＳに固有である必要があり、ソフトウェアドライバがプラットフォームポート及びデバイス実装に合わせてカスタマイズされる必要もあるので、これは、非常に望ましくない。全てのＯＳに対する共通の解決手段を実現すべく、ＯＳが異なるタイプのハードウェアとインタラクトすることを可能とするジェネリックなファームウェアベースのインタフェースが定義される必要がある。インタフェースは、ＯＳ固有のものとして開発されるべきではない。これは、相手先ブランド名製造者（ＯＥＭ）実現への負荷を増加させ、新たな技術に対する市場準備時期に悪影響を与えるであろう。
【００２６】
マルチモーダルインタフェースを含む通信システムは、図１において概説されたように、これらの課題（及び他の課題）を解消することができる。図１の通信システム１００において、各マルチモーダルインタフェース１０６ａ−１０６ｄは、同じインタフェース又はコネクタにおける送電、方向性、及び複数のＩ／Ｏプロトコルをサポート可能なマルチモーダルインタフェース又はコネクタであってよい。複数のプロトコルは、ユーザの介入なく、マルチモーダルインタフェースにおいて、同時に、又はこれら自身によって実行されるように、自動的に構成されてよい。通信システム１００は、１つ又は複数のマルチモーダルインタフェース又はコネクタを有するプラットフォームを効率的に構成し、かつ動作させるべく、（ソフトウェア及びハードウェアの両方の）データ構造、コマンド、通知、及び状態移行のセットを含んでよい。通信システム１００は、マルチモーダルインタフェースを実装するＯＳに対して、プラットフォームの能力を伝送してもよい。Ｉ／Ｏプロトコルは、マルチモーダルインタフェースにおいて、同じ又は異なるピンを介して動作するように構成されてよい。
【００２７】
その方法論は、ＯＳ（例えば、Ａｎｄｒｏｉｄ（登録商標）、ｉＯＳ（商標）、Ｌｉｎｕｘ（登録商標）、ＯＳＸ（商標）、Ｗｉｎｄｏｗｓ（登録商標）等）及びＩ／Ｏ相互接続（例えば、Ｉ２Ｃ（商標）、Ｉ２Ｓ（商標）、ＰＣＩｅ（商標）等）に依存しない様式で、かつ、電子デバイス１０２におけるマルチモーダルインタフェースとインタフェースをとるために用いられるデータ構造として、定義されてよい。結果として、ハードウェアコンポーネント設計者、システムビルダ、及びデバイスドライバ（ソフトウェア）開発者は、互いとシームレスに相互運用するマルチモーダルインタフェースを有するプラットフォーム及びデバイスを開発することができる。例えば、ＰＰＭ１２４は、ハードウェア及びファームウェアの組み合わせと、プラットフォーム又は電子デバイスにおいて、全てのマルチモーダルインタフェースにインタフェースを提供する、ベンダ提供による任意のＯＳサポートソフトウェアとを含んでよい。特定のインタフェース（例えば、ＰＣＩｅ（商標）、Ｉ２Ｃ（商標）等）は、ＰＰＭ１２４とのインタフェースをとるためには必要とされない。さらに、ＯＳＰＭ１１４とＰＰＭ１２４との間のインタフェースは、上述された相互接続又は上述されていない任意の他の相互接続のいずれかを用いて容易に実装されるような態様で定義される。
【００２８】
ＰＰＭ１２４及びＯＳＰＭ１１４を用いて、通信システム１００は、基礎となるハードウェア（例えば、タイプＣハードウェア）を抽象化するジェネリックなファームウェアベースのインタフェースを定義することができ、ＯＳが、その仕様又は複雑性を認識又は理解することなく、ハードウェアにアクセスすることを可能とする。ＯＳＰＭ１１４は、基礎となるプラットフォーム固有のハードウェアを抽象化する、ＯＳ１０８からのインタラクション層であり、ハードウェアと実際の物理的なトランザクションを実行するプラットフォームエージェントである。ＯＳ１０８からハードウェア（例えば、セカンダリデバイス１０４ａ−１０４ｄ）との通信は、ＯＳＰＭ１１４で開始し、ハードウェア（例えば、セカンダリデバイス１０４ａ）に到達する前に、ＬＰＭ（例えば、ＬＰＭ１２６ａ）を通過する。
【００２９】
ファームウェア１１８は、ＯＥＭがサポートする必要があるＯＳ又はプラットフォームもしくは電子デバイス１０２における具体的なポート及びデバイスの数に関わらず、ＯＥＭによって実装可能なファームウェアベースのデバイスポリシマネージャであってよい。これにより、ＯＥＭに対する開発の取り組みが軽減可能であり、新たな製品、デバイス、及び機能を市場化するまでの時間を加速可能とする。ファームウェア１１８及びＰＰＭ１２４は、ＯＳ１０８から基礎となるハードウェアを抽象化させ、ＬＰＭ１２６ａ−１２６ｄとインタラクトしてよい。ＬＰＭ１２６ａ−１２６ｄは、マルチモーダルインタフェース（例えば、マルチモーダルインタフェース１０６ａ−１０６ｄ）に接続されるセカンダリデバイス（例えば、セカンダリデバイス１０４ａ−１０４ｄ）との実際のコマンドレベルの通信を行う。
【００３０】
各マルチモーダルインタフェース１０６ａ−１０６ｄは、それぞれ、ＬＰＭ１２６ａ−１２６ｄとインタラクトするいくつかの最小検出ロジックを有するインタフェース又はコネクタであってよい。電子デバイス１０２は、接続されたＬＰＭ１２６ａ−１２６ｄを介して、セカンダリデバイス１０４ａ−１０４ｄの理解、制御、又はこれらとの通信を行ってよい。各ＬＰＭ１２６ａ−１２６ｄは、物理的にＳＯＣの一部であってよく、又は、他のマイクロコントローラ（例えば、埋め込みコントローラ又は統合センサハブ）によって隠されたプラットフォームに別個に設けられてよい。ＰＰＭ１２４はＯＳ１０８と各セカンダリデバイス１０４ａ−１０４ｄとの間における通信のために抽象化層を提供するので、これにより、問題回避及びバグ修正が、ＯＳ層の変更のような上層の変更なしで、プラットフォームレベルのみに実装されることが可能となる。
【００３１】
ＯＳＰＭ１１４は、主に、セカンダリデバイス１０４ａ−１０４ｄへの、又はこれらのセカンダリデバイスからのあらゆるＯＳ１０８ベースの要求又は通信をファームウェア１１８に伝送することを担う。ファームウェア１１８は、ＰＰＭ１２４とインタラクトすることによって、ＯＳ１０８及びＯＳＰＭ１１４から基礎となるハードウェアを抽象化させることができる。ＰＰＭ１２４は、異なるセカンダリデバイス１０４ａ−１０４ｄにおいて、全て（又はほぼ全て）のプラットフォーム及びシステムレベルの情報を維持するプラットフォーム固有のコンポーネントであり、個々のマルチモーダルインタフェース１０６ａ−１０６ｄを管理する各ＬＰＭ１２６ａ−１２６ｄと、直接通信を行う。ＯＳＰＭ１１４とファームウェア１１８との間の通信メカニズムは、ほぼ任意の特定のＰＰＭ１２４により動作することができる。ファームウェア１１８がＯＳＰＭ１１４とのランタイム通信を可能とするように、ファームウェア１１８は、複数の態様（ＡＣＰＩ、ＳＭＭ等を含む）で実装されてよい。
【００３２】
ＯＳＰＭ１１４とＰＰＭ１２４との間の通信は、メールボックス１２２を経由してよい。メールボックス１２２は、電子デバイス１０２のメモリ１１２における共有バッファであってよく、又はメモリ１１２における何らかの他の位置であってよい。メールボックス１２２は、レジスタ及びセカンダリデバイス１０４ａ−１０４ｄへのアクセスパターンを記述する、セカンダリデバイス１０４ａ−１０４ｄのインタフェース仕様レジスタに基づくフォーマットで定義される、共有メモリのジェネリックなデータ構造であってよい。具体例において、メールボックス１２２は、レジスタ及びタイプＣハードウェアへのアクセスパターンを記述する、ＵＳＢタイプＣソフトウェアインタフェース仕様レジスタに基づくフォーマットで定義される共有メモリであってよい。
【００３３】
ＯＳ１０８及びセカンダリデバイス（例えば、セカンダリデバイス１０４ａ−１０４ｄの１つ）からの２つの連続するコマンド間で起こり得る競合状況を回避すべく、ＯＳ１０８とセカンダリデバイスとの間の通信が双方向通信である場合、メールボックス１２２は、２つの領域にパーティショニングされ、その各々が、ファームウェア１１８又はＯＳＰＭ１１４のいずれかにのみアクセス可能であってよい。例えば、メールボックス１２２は、コマンド及び応答エリアとしてパーティショニングされてよい。例において、ＯＳＰＭ１１４は、ＯＳ１０８からセカンダリデバイスへの要求又はコマンドを、メールボックス１２２のＯＳＰＭ１１４部分に書き込んでよい。ＰＰＭ１２４は、メールボックス１２２を読み出し、ＯＳＰＭ１１４からの要求又はコマンドを受信してよい。セカンダリデバイスからＯＳＰＭ１１４への通信アラートが存在する場合、ＰＰＭ１２４は、メールボックス１２２を更新し、ＯＳＰＭ１１４にアラートを発する。これは、次に、メールボックス１２２を読み出して、アラートの原因を処理する。
【００３４】
システムホストコントローラ１２０は、クライアントシステムで用いられる埋め込みコントローラ（ＥＣ）、サーバシステムで用いられるベースボード管理（ＢＭ）コントローラ、タブレットシステムで用いられるＩ２Ｃ（商標）コントローラ、長期の可能な解決手段において利用可能な統合センサハブ（ＩＳＨ）、又はＰＰＭ１２４との間で容易に通信を行ういくつかの他の同様のシステムであってよい。ファームウェア１１８は、ＰＰＭ１２４のタイプに無関係な通信チャネルのために、動作領域１１６を確立してよい。例えば、ＯＳＰＭ１１４からの要求が検出された場合、ファームウェア１１８は、その要求により動作領域１１６を更新し、ＰＰＭ１２４にアラートを発してよい。一例において、動作領域１１６は、メールボックス１２２のような共有エリアへのアクセスを容易にすることを補助してよい。より具体的には、動作領域１１６は、電子デバイス１０２における共有エリアの位置を定義してよい。これにより、ファームウェア１１８は、動作領域１１６によって提供されるアクセス情報を用いて、共有エリアにおけるデータを更新又は取得してよい。図示の例において、ＰＰＭ１２４は、要求（例えば、ＯＳ１０８からの要求又は通信）を取得し、これを処理し、セカンダリデバイス（例えば、セカンダリデバイス１０４ａ）に対して、ＬＰＭ（例えば、ＬＰＭ１２６ａ）及びセカンダリデバイスに接続されるマルチモーダルインタフェース（例えば、マルチモーダルインタフェース１０６ａ）を用いて、その要求を伝送してよい。同様に、セカンダリデバイスからのあらゆる要求又は通信は、マルチモーダルインタフェース（例えば、マルチモーダルインタフェース１０６ａ）及びＬＰＭ（例えば、ＬＰＭ１２６ａ）を通過し、ＰＰＭ１２４によって受信されてよい。ＰＰＭ１２４は、要求又は通信によりメールボックス１２２を更新してよく、ＯＳＰＭ１１４は、更新について通知されてよい。ＯＳＰＭ１１４は、動作領域１１６及びメールボックス１２２を用いて同様にＰＰＭ１２４との通信を行うファームウェア１１８を用いて、要求又は通信を取得してよい。例において、セカンダリデバイス（又はインタフェースもしくはＬＰＭ）からのあらゆる要求又は通信は、最初に、ファームウェア１１８がそれをメールボックス１２２に書き込む前に、ＰＰＭ１２４によって動作領域１１６において更新され、ＯＳＰＭ１１４によって読み出される。
【００３５】
具体例において、ＯＳＰＭ１１４がアイドル状態にある場合、ＯＳＰＭ１１４は、ＯＳ１０８、ＰＰＭ１２４、又は何らかの他の要素からの通知又は要求を待ってよい。アイドル状態から、ＯＳＰＭ１１４は、コマンドを送信し、コマンド完了状態の待ちに入ってよい。例えば、ＯＳＰＭ１１４は、コネクタステータス更新コマンドをＰＰＭ１２４に送信し、ＰＰＭ１２４からの応答を待ってよい。コマンドがリセットＰＰＭコマンドであった場合、そのコマンドにより通知がＯＳＰＭ１１４から無効化されてよく、ＰＰＭ１２４は、リセットコマンドが受信されたことを示すリセットインジケータを送信してよい。
【００３６】
コマンド完了状態の待ちの間に、ＰＰＭ１２４がビジーインジケータに応答した場合、ＯＳＰＭ１１４は、コマンドの完了を遅延させ、コマンド競合状態の待ちに戻ってよい。ＰＰＭ１２４がビジーインジケータに応答し、コマンドがキャンセルされる必要があるとＯＳＰＭ１１４が判断した場合、ＯＳＰＭ１１４は、現コマンドキャンセル中間状態に入り、コマンドキャンセルメッセージを送信し、コマンド競合状態の待ちに戻ってよい。
【００３７】
また、アイドル状態から、ＯＳＰＭ１１４は、通知を待ってよい。この場合、ＯＳＰＭ１１４は、アイドル状態のままである。コネクタ変更保留指示が設定された場合、ＯＳＰＭ１１４は、ＯＰＭ処理コネクタ変更中間状態に入ってよい。ＯＰＭ処理コネクタ変更中間状態から、ＯＳＰＭ１１４は、関連コマンドを送信し、コマンド完了状態のＯＰＭ待ちに入ってよい、又は、コネクタ変更を受信確認し、受信確認コマンドを送信し、受信確認コマンドインジケータ待機状態に入ってよい。ＰＰＭ１２４が、コネクタ変更が完了したことを示す受信確認コマンドインジケータを送信した後で、ＰＰＭ１２４は、ＯＰＭ受信確認コマンドインジケータ待機状態からアイドル状態に移ってよい。
【００３８】
通信システム１００を用いて、ＯＳベンダは、マルチモーダルインタフェース１０６ａ−１０６ｄのようなマルチモーダルインタフェース又はコネクタをサポートするシステムと、適切に相互運用してよい。これにより、ＯＳベンダ及びオペレーティングハードウェアベンダ（ＯＨＶ）は、シームレスに相互運用可能なソフトウェア及びハードウェアを開発することが可能となる。これにより、相手先ブランド名製造者（ＯＥＭ）又はＯＨＶは、製品をユーザに供給し、様々なＯＳ、付属のサードパーティ周辺機器と共にシームレスに動作する、ＯＳに依存しない標準化ハードウェアを生成することも可能となり、製品が互いに通信を行う能力を向上させることさえ可能となる。
【００３９】
図１のインフラストラクチャを参照すると、例示的な実施形態に係る通信システム１００が示される。「コマンド」及び「通信」という用語は、本明細書で用いられる場合、データの伝送を指す。「データ」という用語は、本明細書で用いられる場合、任意のタイプのバイナリ、数値、音声、ビデオ、テキスト、又はスクリプトデータ、又は任意のタイプのソースもしくはオブジェクトコード、又は電子デバイス及び／又はネットワークにおいて１つのポイントから他のポイントに伝送可能な任意の好適なフォーマットの任意の他の好適な情報を指す。例示的な実装において、電子デバイス１０２及びセカンダリデバイス１０４ａ−１０４ｄは、電子的要素であり、これらは、任意の好適なハードウェア、ソフトウェア、コンポーネント、モジュール、又はこれらのオペレーションを容易にするオブジェクト、及びデータ又は情報を受信、送信、及び／又は他の方法で伝送する好適なインタフェースを包含することが意図される。これは、データ又は情報の有効な交換を可能とする適切なアルゴリズム及び通信プロトコルを含んでよい。
【００４０】
通信システム１００に関連する内部構造に関して、電子デバイス１０２及びセカンダリデバイス１０４ａ−１０４ｄの各々は、本明細書で概説されるオペレーションにおいて用いられるべき情報を格納するためのメモリ要素を含んでよい。電子デバイス１０２及びセカンダリデバイス１０４ａ−１０４ｄの各々は、任意の好適なメモリ要素（例えば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、特定用途向け集積回路（ＡＳＩＣ）等）、ソフトウェア、ハードウェア、ファームウェア、又は任意の他の好適なコンポーネント、デバイス、要素、もしくはオブジェクトに、適宜、具体的な必要性に基づいて、情報を保持してよい。本明細書で説明されるメモリアイテムのいずれも、「メモリ要素」という広義の用語内に包含されるものと解釈されなければならない。さらに、通信システム１００において利用、追跡、送信、又は受信された情報は、任意のデータベース、レジスタ、キュー、テーブル、キャッシュ、制御リスト、又は他のストレージ構造に提供されてよく、これらの全ては、任意の好適な時間枠で参照されてよい。このようなストレージのあらゆる選択肢も、本明細書で用いられる場合、「メモリ要素」という広義の用語内に含まれてよい。
【００４１】
特定の例示的な実装において、本明細書で概説される機能は、非一時的コンピュータ可読媒体を含み得る１つ又は複数の有形媒体においてエンコードされるロジック（例えば、ＡＳＩＣ、デジタル信号プロセッサ（ＤＳＰ）命令、プロセッサによって実行されるべきソフトウェア（潜在的にオブジェクトコード及びソースコードを含む）、又は他の同様の機械等において提供される埋め込みロジック）によって実装されてよい。これらの例のいくつかにおいて、メモリ要素は、本明細書で説明されるオペレーションに用いられるデータを格納してよい。これは、本明細書で説明される動作を実行するために実行されるソフトウェア、ロジック、コード、又はプロセッサ命令を格納可能なメモリ要素を含む。
【００４２】
例示的な実装において、電子デバイス１０２及びセカンダリデバイス１０４ａ−１０４ｄは、本明細書で概説されるオペレーションを実現又は促進するソフトウェアモジュールを含んでよい。これらのモジュールは、任意の好適な態様で、好適に組み合わせられてよく、これは、具体的な構成及び／又は供給の必要性に基づいてよい。例示的な実施形態において、このようなオペレーションは、意図される機能を実現すべく、ハードウェアによって実行され、これらの要素の外部に実装され、又は、いくつかの他のネットワークデバイスに含まれてよい。さらに、モジュールは、ソフトウェア、ハードウェア、ファームウェア、又はこれらの任意の好適な組み合わせとして実装されてよい。これらの要素は、本明細書で概説されるオペレーションを実現するために、他のネットワーク要素と連携可能なソフトウェア（又はレシプロ型ソフトウェア）を含んでもよい。
【００４３】
追加的に、電子デバイス１０２及びセカンダリデバイス１０４ａ−１０４ｄの各々は、本明細書で説明される動作を実行するソフトウェア又はアルゴリズムを実行可能なプロセッサを含んでよい。プロセッサは、本明細書で詳述されるオペレーションを実現するデータに関連付けられた任意のタイプの命令を実行してよい。一例において、プロセッサは、要素又は項目（例えば、データ）を１つの状態又は物から他の状態又は物に変換してよい。他の例において、本明細書で概説される動作は、固定ロジック又はプログラマブルロジック（例えば、プロセッサによって実行されるソフトウェア／コンピュータ命令）により実装されてよく、本明細書において特定される要素は、何らかのタイプのプログラマブルプロセッサ、プログラマブルデジタルロジック（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ）又はデジタルロジック、ソフトウェア、コード、電子的命令、もしくはこれらの任意の好適な組み合わせを含むＡＳＩＣであってよい。本明細書で説明される、利用可能な処理要素、モジュール、及び機械のいずれも、「プロセッサ」という広義の用語内に包含されるものと解釈されるべきである。
【００４４】
電子デバイス１０２は、電子的要素であってよく、例えば、デスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、パーソナルデジタルアシスタント、スマートフォン、タブレット、又は他の同様のデバイスを含む。セカンダリデバイス１０４ａ−１０４ｄは、電子デバイス１０２との通信を行う周辺機器のようなセカンダリハードウェアであってよい。「周辺機器」という用語は、本明細書で用いられる場合、概して、いくつかの態様でコンピュータのような電気的デバイスに接続され、かつ、これと共に動作するユニバーサルシリアルバス（ＵＳＢ）フラッシュドライブ、コンピュータマウス、キーボード、スピーカ、マイク等のような、任意の補助デバイスとして定義される。１つ又は複数のセカンダリデバイス１０４ａ−１０４ｄは、同じタイプのデバイスであってよく、又は、各セカンダリデバイス１０４ａ−１０４ｄは、異なるデバイスであってよい。
【００４５】
図２を参照すると、図２は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー２００の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー２００の１つ又は複数のオペレーションは、ＯＳＰＭ１１４、ＰＰＭ１２４、及びＬＰＭ１２６ａ−１２６ｄの１つ又は複数によって実行されてよい。２０２において、データが、共有メモリに伝送される。例えば、ＯＳポリシマネージャ１１４は、データをメールボックス１２２に伝送してよい。他の例において、データは、ハードウェアで実装されるレジスタインタフェースに伝送されてよい。ここで、データ書き込みオペレーションは、他のオペレーションをトリガするために用いられてよい。２０４において、データが共有メモリにあるというメッセージが、インタフェースに伝送される。例えば、ＯＳポリシマネージャ１１４は、データがメールボックス１２２にあるというメッセージを、ファームウェア１１８に伝送してよい。２０６において、インタフェースは、データを読み出し、当該データに関する１つ又は複数の命令を、プラットフォームポリシマネージャに伝送する。例えば、ファームウェア１１８は、メールボックス１２２におけるデータを読み出してよく、当該データに関する１つ又は複数の命令をＰＰＭ１２４に伝送してよい。２０８において、プラットフォームポリシマネージャは、命令を受信及び解釈し、命令に基づいて、１つ又は複数のコマンドをローカルポリシマネージャに伝送する。例えば、ＰＰＭ１２４は、命令を解釈し、１つ又は複数の命令又はコマンドをＬＰＭ１２６ａに伝送してよい。２１０において、ローカルポリシマネージャは、データをセカンダリデバイスに伝送する。例えば、ＬＰＭ１２６ａは、インタフェース１２８ａ及びマルチモーダルインタフェース１０６ａを用いて、データをセカンダリデバイス１０４ａに伝送してよい。
【００４６】
図３を参照すると、図３は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー３００の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー３００の１つ又は複数のオペレーションは、ＯＳＰＭ１１４、ＰＰＭ１２４、及びＬＰＭ１２６ａ−１２６ｄの１つ又は複数によって実行されてよい。３０２において、セカンダリデバイスに関連するデータが、プラットフォームポリシマネージャに伝送される。例えば、ＯＳＰＭ１１４は、データをＰＰＭ１２４に伝送してよい。データは、メールボックス１２２及びファームウェア１１８を用いて伝送されてよく、又は、何らかの他の手段を用いて、ＰＰＭ１２４に伝送されてよい。さらに、データは、セカンダリデバイス１０４ａに関するものであってよく、セカンダリデバイス１０４ａに対する命令、クエリ、コマンド等を含む。３０４において、プラットフォームポリシマネージャは、データ及び／又は関連データをローカルポリシマネージャに伝送する。例えば、データは、ＰＰＭ１２４からＬＰＭ１２６ａに伝送されてよい。３０６において、ローカルポリシマネージャは、データ及び／又は関連データを、セカンダリデバイスとの通信を行うインタフェースに伝送する。例えば、データは、ＬＰＭ１２６ａ及びマルチモーダルインタフェース１０６ａを介して、セカンダリデバイス１０４ａにおけるインタフェース１２８ａに伝送されてよい。
【００４７】
図４Ａ及び図４Ｂを参照すると、図４Ａ及び図４Ｂは、実施形態に係るマルチモーダルインタフェースに関連し得る可能なオペレーションを示す例示的なタイミングフロー図である。タイミングフロー図は、ＯＳＰＭ１１４からＬＰＭ１２６ａへの通常の同期フローを示す。ＬＰＭ１２６ａは、セカンダリデバイス１０４ａとの通信を行ってよい。
【００４８】
実施形態において、ＯＳＰＭ１１４は、書き込み制御コマンドをメールボックス１２２に伝送してよい。ＯＳＰＭ１１４は、メールボックス書き込みコマンドの通知をファームウェア１１８に送信してもよい。ファームウェア１１８は、メールボックス１２２を読み出し、コマンド詳細を取得してよい。ファームウェア１１８は、コマンド詳細をＰＰＭ１２４に伝送してよい。例において、コマンド詳細は、動作領域１１６を用いてＰＰＭ１２４に伝送される。ＰＰＭ１２４は、コマンドをＬＰＭ１２６ａに伝送してよい。ＬＰＭ１２６ａは、コマンドを実行し、応答をＰＰＭ１２４に返信してよい。例において、応答は、動作領域１１６を用いて、ファームウェア１１８にコピーされてよい。ファームウェア１１８は、応答を受信し、応答をメールボックス１２２にコピーしてよい。ファームウェア１１８は、メールボックス１２２における応答、及び当該コマンドが完了したことを、ＯＳＰＭ１１４に通知してもよい。ＯＳＰＭ１１４は、コマンド完了受信確認をメールボックス１２２に書き込み、メールボックス１２２におけるコマンド完了受信確認をファームウェア１１８に通知してよい。ファームウェア１１８は、コマンド完了受信確認についてメールボックス１２２を読み出し、コマンド完了受信確認詳細を取得してよい。ファームウェア１１８は、コマンド完了受信確認詳細をＰＰＭ１２４に伝送してよい。例において、ファームウェア１１８は、動作領域１１６を用いて、コマンド完了受信確認詳細をＰＰＭ１２４に伝送してよい。ＰＰＭ１２４は、コマンド完了受信確認をＬＰＭ１２６ａに伝送してよい。ＬＰＭ１２６ａは、コマンド完了受信確認を処理し、受信確認応答をＰＰＭ１２４に返信してよい。ＰＰＭ１２４は、受信確認応答をファームウェア１１８にコピーしてよい。例において、ＰＰＭ１２４は、動作領域１１６を用いて、受信確認応答をファームウェア１１８にコピーしてよい。ファームウェア１１８は、受信確認応答を取得し、受信確認応答をメールボックス１２２にコピーしてよい。ファームウェア１１８は、メールボックス１２２における受信確認応答について、ＯＳＰＭ１１４に通知してもよい。
【００４９】
図５を参照すると、図５は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー５００の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー５００の１つ又は複数のオペレーションは、ＯＳＰＭ１１４、ＰＰＭ１２４、及びＬＰＭ１２６ａ−１２６ｄの１つ又は複数によって実行されてよい。５０２において、セカンダリ電子デバイスは、インタフェースを介して、データを電子デバイスに伝送する。例えば、セカンダリデバイス１０４ａは、インタフェース１２８及びマルチモーダルインタフェース１０６ａを用いて、データを電子デバイスに伝送してよい。５０４において、インタフェースとの通信を行うローカルポリシマネージャは、データを受信し、データ及び／又は関連データの少なくとも一部をプラットフォームポリシマネージャに伝送する。例えば、ＬＰＭ１２６ａは、マルチモーダルインタフェース１０６ａからデータを受信し、データをＰＰＭ１２４に伝送してよい。５０６において、プラットフォームポリシマネージャは、データ及び／又は関連データの少なくとも一部をインタフェースに伝送する。例えば、ＰＰＭ１２４は、データの少なくとも一部をファームウェア１１８に伝送してよい。５０８において、インタフェースは、データ及び／又は関連データの少なくとも一部をバッファに格納し、データ及び／又は関連データがバッファに格納されたというメッセージを、オペレーティングシステムポリシマネージャに伝送する。例えば、ファームウェア１１８は、データ及び／又は関連データをメールボックス１２２に格納し、データ及び／又は関連データがメールボックス１２２に格納されたというメッセージを、ＯＳＰＭ１１４に伝送してよい。５１０において、オペレーティングシステムポリシマネージャは、バッファにアクセスし、データ及び／又は関連データを取得する。例えば、ＯＳＰＭ１１４は、メールボックス１２２におけるデータを取得し、データ及び／又は関連データを、実行又は処理のために、ＯＳ１８８に伝送してよい。
【００５０】
図６を参照すると、図６は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー６００の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー６００の１つ又は複数のオペレーションは、ＯＳＰＭ１１４、ＰＰＭ１２４、及びＬＰＭ１２６ａ−１２６ｄの１つ又は複数によって実行されてよい。６０２において、セカンダリ電子デバイスとの通信を行うインタフェースは、データをローカルポリシマネージャに伝送する。例えば、マルチモーダルインタフェース１０６ａは、データをＬＰＭ１２６ａに伝送してよい。データは、インタフェース１２８を介してセカンダリデバイス１０４ａから受信されていたものであってよく、インタフェース１２８ａがマルチモーダルインタフェース１０６ａから切断された結果、又は何らかの他の通信もしくはイベントの結果であってよい。６０４において、ローカルポリシマネージャは、データ及び／又は関連データをプラットフォームポリシマネージャに伝送する。６０６において、プラットフォームポリシマネージャは、データ及び／又は関連データをオペレーティングシステムポリシマネージャに伝送する。例えば、ＰＰＭ１２４は、データ及び／又は関連データをＯＳＰＭ１１４に直接伝送してよく、ファームウェア１１８及びメールボックス１２２を用いて、データ及び／又は関連データをＯＳＰＭ１１４に伝送してよく、又は、何らかの他の経路又は手段を用いて、データ及び／又は関連データをＯＳＰＭ１１４に伝送してよい。
【００５１】
図７を参照すると、図７は、実施形態に係るマルチモーダルインタフェースに関連し得る可能なオペレーションを示す例示的なタイミングフロー図である。実施形態において、ＬＰＭ１２６ａは、アラート通知をＰＰＭ１２４に送信する。ＰＰＭ１２４は、アラートをファームウェア１１８にコピーする。例において、ＰＰＭ１２４は、動作領域１１６を用いて、アラートをファームウェア１１８にコピーしてよい。ファームウェア１１８は、アラートをメールボックス１２２にコピーし、ファームウェア１１８は、アラートについてＯＳＰＭ１１４に通知する。ＯＳＰＭ１４４は、情報について、メールボックス１２２におけるアラートを読み出し、アラートを処理し、受信確認をメールボックス１２２に送信する。ＯＳＰＭ１４４は、ＯＳＰＭ１４４がデータをメールボックス１２２に配したという通知を、ファームウェア１１８にさらに送信する。ファームウェア１１８は、受信確認詳細についてメールボックス１２２を読み出し、受信確認詳細をＰＰＭ１２４に伝送する。例において、ファームウェア１１８は、動作領域１１６を用いて、受信確認詳細をＰＰＭ１２４に伝送してよい。ＰＰＭ１２４は、受信確認詳細をＬＰＭ１２６ａに伝送し、ＬＰＭ１２６ａは、受信確認詳細を処理し、応答をＰＰＭ１２４に提供する。ＰＰＭ１２４は、受信確認応答をファームウェア１１８にコピーする。例において、ＰＰＭ１２４は、動作領域１１６を用いて、受信確認応答をファームウェア１１８にコピーしてよい。ファームウェア１１８は、受信確認応答をメールボックス１２２に配する。ファームウェア１１８は、メールボックス１２２における受信確認応答について、ＯＳＰＭ１４４に通知する。
【００５２】
図８を参照すると、図８は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー８００の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー８００の１つ又は複数のオペレーションは、ＯＳＰＭ１１４、ＰＰＭ１２４、及びＬＰＭ１２６ａ−１２６ｄの１つ又は複数によって実行されてよい。８０２において、コマンドが、デバイスから送信される。８０４において、システムは、コマンドがリセットコマンドであったか否かを判断する。コマンドがリセットコマンドであった場合、リセット完了インジケータが、８０６に示すように、デバイスによって受信される。
【００５３】
コマンドがリセットコマンドではなかった場合、システムは、８０８に示すように、ビジーインジケータがコマンドに応答して受信されたか否かを判断する。ビジーインジケータがコマンドに応答して受信されなかった場合、コマンド完了通知が、８１０に示すように、デバイスによって受信される。８１２において、コマンド完了が受信確認される。ビジーインジケータがコマンドに応答して受信された場合、システムは、８１４に示すように、コマンドがキャンセルされるべきか否かを判断する。コマンドがキャンセルされるべき場合、コマンドキャンセルメッセージが、８１０に示すように送信される。コマンドがキャンセルされるべきではない場合、デバイスは、８１６に示すように、コマンドへの応答を待つ。８１０において、コマンド完了通知が受信され、コマンド完了が、８１２に示すように受信確認される。
【００５４】
図９を参照すると、図９は、実施形態に係るマルチモーダルインタフェースに関連し得るフロー９００の可能なオペレーションを示す例示的なフローチャートである。実施形態において、フロー９００の１つ又は複数のオペレーションは、ＯＳＰＭ１１４、ＰＰＭ１２４、及びＬＰＭ１２６ａ−１２６ｄの１つ又は複数によって実行されてよい。９０２において、コマンドが、デバイスにおいて受信される。９０４において、システムは、コマンドがリセットコマンドであったか否かを判断する。コマンドがリセットコマンドであった場合、デバイスは、９０６に示すようにリセットされる。９０８において、リセットインジケータが送信される。
【００５５】
コマンドがリセットコマンドではなかった場合、システムは、９１０に示すように、デバイスがビジーであるか否かを判断する。デバイスがビジーではない場合、コマンドは、９２２に示すように完了し、コマンド完了通知が、９２４に示すように送信される。デバイスがビジーである場合、システムは、９１２に示すように、コマンドが現コマンドキャンセルメッセージであるか否かを判断する。コマンドが現コマンドキャンセルメッセージである場合、現コマンドは、９１４に示すようにキャンセルされ、コマンドキャンセル受信確認が、９１６に示すように送信される。コマンドが現コマンドキャンセルメッセージではない場合、ビジーインジケータが、９１８に示すように送信される。９２０において、システムは、デバイスがビジーであるか否かを判断する。デバイスがビジーである場合、システムは、９２０に示すように、デバイスがビジーであるか否かを再確認する。デバイスがビジーではない場合、コマンドは、９２２に示すように完了し、コマンド完了通知が、９２４に示すように送信される。
【００５６】
図１０を参照すると、図１０は、実施形態に係る、マルチモーダルインタフェースに関連し得る可能な詳細を示す例示的な簡略化されたデータ構造テーブル１０００であり、ＯＳＰＭ１１４とＰＰＭ１２４との間で情報を受け渡すために用いられるメモリ位置の構造の一例が、図１０のテーブル１０００に示される。実施形態において、データ構造テーブル１０００は、オフセット列１００２、名称列１００４、メモリ位置列１００６、方向列１００８、及びサイズ列１０１０を含んでよい。名称列１００４は、データ構造の名称、例えば、バージョン１０１２、予約１０１４、コネクタ変更指示（ＣＣＩ）１０１６、制御１０１８、入力メッセージ１０２０、及び出力メッセージ１０２２を含んでよい。
【００５７】
方向列１００８は、各メモリ位置が利用可能な方向を含んでよい。例えば、ＰＰＭ→ＯＰＭは、ＰＰＭ１２４が情報をＯＳＰＭ１１４に渡すためにそのメモリ位置を用いることを示す。当該位置は、ＯＳＰＭ１１４に関する限り、読み出しのみ（ＲＯ）である。同様に、ＯＰＭ→ＰＰＭは、ＯＳＰＭ１１４が、情報をＰＰＭ１２４に渡すためにそのメモリ位置を用いることを示す。当該位置は、ＰＰＭ１２４に関する限り、ＲＯである。名称列１００４は、通信システム１００において利用可能な、例示的なデータ構造の名称を含んでよい。
【００５８】
例えば、バージョン１０１２は、バージョンデータ構造を含んでよい。バージョンデータ構造は、ＰＰＭ１２４が準拠する二進化十進数（ＢＣＤ）バージョンを含んでよい。予約１０１４は、メモリの予約されたエリアであってよい。ＣＣＩ１０１６は、ＣＣＩデータ構造を含んでよい。ＣＣＩデータ構造は、ＯＳＰＭ１１４によってＰＰＭ１２４に送信されたコマンドに対するＰＰＭ１２４からの応答、及びマルチモーダルインタフェース１０６ａ−１０６ｄにおいて生じた非同期ステータス変更通知を含んでよい。制御１０１８は、制御データ構造を含んでよい。制御データ構造は、ＰＰＭ１２４によって実行されるべきコマンドを示してよい。入力メッセージ１０２０は、入力メッセージデータ構造を含んでよい。入力メッセージデータ構造は、ＰＰＭ１２４がＯＳＰＭ１１４に送信することを望むデータを含んでよい。出力メッセージ１０２２は、出力メッセージデータ構造を含んでよい。出力メッセージデータ構造は、ＰＰＭ１２４に送信されるべきデータを含んでよい。入力メッセージ及び出力メッセージデータ構造のフォーマットは、コマンド固有であってよい。
【００５９】
さらに、様々なコマンドが、ＯＳＰＭ１１４によってＰＰＭ１２４に送信され、マルチモーダルインタフェース１０６ａ−１０６ｄを構成し、かつ動作させてよい。図示の一例において、ＰＰＭリセットコマンドは、ＰＰＭ１２４をリセットするために用いられてよい。ＰＰＭリセットコマンドは、任意の時にＯＳＰＭ１１４によってＰＰＭ１２４に送信されてよい。ＰＰＭリセットコマンドを受信すると、ＰＰＭ１２４は、ＰＰＭ１２４との通信を行う各マルチモーダルインタフェース１０６ａ−１０６ｄに対して、ハードリセットを実行してよい。キャンセルコマンドは、前にＰＰＭ１２４に送信されたコマンドをキャンセルするために用いられてよい。コネクタリセットコマンドは、マルチモーダルインタフェース１０６ａ−１０６ｄをリセットするために用いられてよい。コマンド完了及び／又は変更指示受信確認は、ＯＳＰＭ１１４がコマンド完了及び／又はコネクタ変更指示を受信及び処理したという受信確認を、ＰＰＭ１２４に伝送するために用いられてよい。通知有効化設定コマンドは、ＰＰＭ１２４がＯＳＰＭ１１４にそれに関する通知を送信可能な非同期イベントのリストを設定するために用いられてよい。
【００６０】
能力取得コマンドは、ＰＰＭ１２４の能力を取得するために用いられてよい。コネクタ能力取得は、マルチモーダルインタフェース１０６ａ−１０６ｄの能力を取得するために用いられてよい。オペレーションモード設定は、ＯＳＰＭ１１４がマルチモーダルインタフェース１０６ａ−１０６ｄに望むオペレーションモードを設定するために用いられてよい。例えば、動作モード設定は、マルチモーダルインタフェース１０６ａを具体的なＵＳＢ動作モードに設定するために用いられてよい。
【００６１】
オルタネートモード取得は、セカンダリデバイス（例えば、セカンダリデバイス１０４ａ）がサポートするオルタネートモードを判断するために用いられてよい。サポートコネクタオルタネートモード取得コマンドは、マルチモーダルインタフェース１０６ａ−１０６ｄにおいて、又はこれらによってサポートされるオルタネートモードのリストを判断するために用いられてよい。現コネクタオルタネートモード取得コマンドは、マルチモーダルインタフェース（例えば、マルチモーダルインタフェース１０６ａ）が動作する現在のオルタネートモードを判断するために用いられてよい。新コネクタオルタネートモード設定コマンドは、マルチモーダルインタフェース（例えば、マルチモーダルインタフェース１０６ａ）が動作することをＯＳＰＭ１１４が望む新たなオルタネートモードを設定するために用いられてよい。
【００６２】
電力伝送オブジェクト（ＰＤＯ）取得コマンドは、マルチモーダルインタフェース（例えば、マルチモーダルインタフェース１０６ａ）に関連するシンク又はソースＰＤＯを取得するために用いられてよい。電力役割設定コマンドは、マルチモーダルインタフェース（例えば、マルチモーダルインタフェース１０６ａ）の送電方向（ソース又はシンクのいずれか）を設定するために用いられてよい。ケーブル特性取得コマンドは、マルチモーダルインタフェース（例えば、マルチモーダルインタフェース１０６ａ）に付属するケーブル又は何らかの他のタイプの通信もしくはデータコネクタの特性を取得するために用いられてよい。コネクタステータス取得コマンドは、マルチモーダルインタフェース（例えば、マルチモーダルインタフェース１０６ａ）の現在のステータス（例えば、電力役割、データ役割、構成されるオルタネートモード等）を取得するために用いられてよい。
【００６３】
ＰＰＭ１２４が初期化すると、ＰＰＭ１２４は、任意のＯＳ１０８のインタラクションなしで、機能することが期待される。内部初期化が完了すると、ＰＰＭ１２４は、ＰＰＭアイドル（通知無効化）状態にあってよい。ＰＰＭ１２４は、ＯＳＰＭ１１４が通知有効化設定コマンドを介して１つ又は複数の通知を有効化するまで、ＯＳＰＭ１１４にいずれの動作も通知しなくてよい。通知有効化設定コマンドが成功裡に完了すると、ＰＰＭ１２４は、ＰＰＭアイドル（通知有効化）状態に移行してよい。ＰＰＭ１２４がＰＰＭアイドル（通知無効化）状態において処理することを必要とされるコマンドは、通知有効化設定コマンド及びＰＰＭリセットコマンドのみである。
【００６４】
例示的なオペレーションのモデルにおいて、ＯＳＰＭ１１４は、一時に最大で１つのコマンドをＰＰＭ１２４に送信してよい。一度コマンドが送信されると、ＯＳＰＭ１１４は、次のコマンドを送信する前に、ＰＰＭ１２４が現コマンドを完了するまで待たなければならない。ＰＰＭ１２４は、コマンド完了通知が有効化された場合には、当該コマンドを完了したときにＯＳＰＭ１１４に通知してよい。コマンドが１つというルールの例外は、キャンセルコマンド及びＰＰＭリセットコマンドのみである。ＰＰＭリセットコマンドは、ＯＳＰＭ１１４によって任意の時に送信されてよい。キャンセルコマンドは、ＯＳＰＭ１１４がＰＰＭビジー応答を前に受信し、ＯＳＰＭ１１４が現行のコマンドをキャンセルすることを望む場合にのみ、ＯＳＰＭ１１４によって送信されなければならない。また、ＰＰＭ１２４は、一時に１つの通知のみをＯＳＰＭ１１４に送信してよい。ＰＰＭ１２４は、次の通知を送信する前に、ＯＳＰＭ１１４が（非同期イベントに起因する）通知を受信確認するまで待ってよい。
【００６５】
キャンセルコマンド又はＰＰＭリセットコマンド以外のコマンドを受信すると、ＰＰＭ１２４は、コマンドを実行してよく、又は、ＰＰＭ１２４がビジーである、もしくはＰＰＭ１２４がコマンド完了のために予め定められた時間長（例えば、１０ｍｓ）より長い時間を使う場合、ＣＣＩデータ構造にビジーインジケータを設定してよい。コマンドを実行すると、ＰＰＭ１２４は、ＣＣＩデータ構造を設定してよく、任意選択的に、ステータス及び入力メッセージデータ構造を更新してよい。コマンド完了通知がＯＳＰＭ１１４によって有効化されていた場合、ＰＰＭ１２４は、ＯＳＰＭ１１４にコマンド完了を通知してよい。
【００６６】
キャンセルコマンドを受信すると、ＰＰＭ１２４は、それが実行していた現在のオペレーションをキャンセルしてよく、又は、ＰＰＭ１２４がコマンドを現在処理していなかった場合には、キャンセル要求をドロップもしくは無視してよい。ＰＰＭ１２４がキャンセルコマンドを成功裡に完了できた場合、ＰＰＭは、ＣＣＩデータ構造を更新し、キャンセル完了インジケータを１に設定してよい。コマンド完了通知がＯＳＰＭ１１４によって有効化されていた場合、ＰＰＭ１２４は、ＯＳＰＭ１１４にコマンド完了を通知してよい。
【００６７】
ＰＰＭリセットコマンドを受信すると、ＰＰＭ１２４は、全ての通知を無効化し、自身をリセットしてＣＣＩデータ構造にリセット完了インジケータを設定し、ＰＰＭアイドル（通知無効化）状態に移行してよい。ＯＳＰＭ１１４は、ＣＣＩデータ構造におけるリセット完了インジケータをポーリングしてよい。コネクタの１つ又は複数において非同期イベントが発生した場合、対応する通知がＯＳＰＭ１１４によって有効化されていた場合には、ＰＰＭ１２４は、ＣＣＩ及びステータスデータ構造を更新し、ＯＳＰＭ１１４に通知してよい。一度ＯＳＰＭ１１４がコマンド完了及び／又は非同期イベントについて通知されると、ＯＳＰＭ１１４は、ＣＣＩ、及び任意選択的にステータスデータ構造を読み出し、コマンド完了及び／又は変更指示受信確認コマンドを介して、通知を受信確認してよい。イベントが非同期イベントであった場合、ＯＳＰＭ１１４は、非同期イベントについての詳細を取得するために、それが必要とする任意の他のコマンドを送信してよい。
【００６８】
図１１は、実施形態に係る、ポイントツーポイント（ＰｔＰ）構成で配置されるコンピューティングシステム１１００を示す。詳細には、図１１は、プロセッサ、メモリ、及び入出力デバイスが多数のポイントツーポイントインタフェースによって相互接続されるシステムを示す。概して、通信システム１００のネットワーク要素の１つ又は複数は、コンピューティングシステム１１００と同じ又は同様の態様で構成されてよい。
【００６９】
図１１に示されるように、システム１１００は、いくつかのプロセッサを含んでよく、明確性のために、そのうちの２つのプロセッサ１１７０及び１１８０のみが示される。２つのプロセッサ１１７０及び１１８０が示されるが、システム１１００の実施形態は、このようなプロセッサを１つだけ含んでもよいことを理解されたい。プロセッサ１１７０及び１１８０の各々は、コアのセット（すなわち、プロセッサコア１１７４Ａ及び１１７４Ｂ、ならびにプロセッサコア１１８４Ａ及び１１８４Ｂ）を含み、プログラムの複数のスレッドを実行してよい。コアは、図２−１０を参照して上述されたものと同様の態様で、命令コードを実行するように構成されてよい。各プロセッサ１１７０、１１８０は、少なくとも１つの共有キャッシュ１１７１、１１８１を含んでよい。共有キャッシュ１１７１、１１８１は、プロセッサコア１１７４及び１１８４のような、プロセッサ１１７０、１１８０の１つ又は複数のコンポーネントによって用いられるデータ（例えば、命令）を格納してよい。
【００７０】
プロセッサ１１７０及び１１８０の各々は、統合メモリコントローラロジック（ＭＣ）１１７２及び１１８２を含み、メモリ要素１１３２及び１１３４と通信を行ってよい。メモリ要素１１３２及び／又は１１３４は、プロセッサ１１７０及び１１８０によって用いられる様々なデータを格納してよい。代替的な実施形態において、メモリコントローラロジック１１７２及び１１８２は、プロセッサ１１７０及び１１８０とは別個のディスクリートロジックであってよい。
【００７１】
プロセッサ１１７０及び１１８０は、任意のタイプのプロセッサであってよく、それぞれ、ポイントツーポイントインタフェース回路１１７８及び１１８８を用いたポイントツーポイント（ＰｔＰ）インタフェース１１５０を介して、データを交換してよい。プロセッサ１１７０及び１１８０の各々は、ポイントツーポイントインタフェース回路１１７６、１１８６、１１９４及び１１９８を用いた個々のポイントツーポイントインタフェース１１５２及び１１５４を介して、制御ロジック１１９０とデータを交換してよい。制御ロジック１１９０は、ＰｔＰインタフェース回路たり得るインタフェース回路１１９２を用いた高性能グラフィクスインタフェース１１３９を介して、高性能グラフィクス回路１１３８とデータを交換してもよい。代替的な実施形態において、図１１に示されるＰｔＰリンクのいずれか又は全ては、ＰｔＰリンクではなく、マルチドロップバスとして実装されてよい。
【００７２】
制御ロジック１１９０は、インタフェース回路１１９６を介してバス１１２０との通信を行ってよい。バス１１２０は、それを介して通信を行う、バスブリッジ１１１８及びＩ／Ｏデバイス１１１６のような１つ又は複数のデバイスを有してよい。バス１１１０を介して、バスブリッジ１１１８は、キーボード／マウス１１１２のような他のデバイス（もしくはタッチスクリーン、トラックボール等のような他の入力デバイス）、（モデム、ネットワークインタフェースデバイス、もしくはコンピュータネットワーク１１６０を介して通信可能な他のタイプの通信デバイスのような）通信デバイス１１２６、オーディオＩ／Ｏデバイス１１１４、及び／又はデータストレージデバイス１１２８との通信を行ってよい。データストレージデバイス１１２８は、プロセッサ１１７０及び／又は１１８０によって実行可能なコード１１３０を格納してよい。代替的な実施形態において、バスアーキテクチャのいずれか一部は、１つ又は複数のＰｔＰリンクにより実装されてよい。
【００７３】
図１１に示されるコンピュータシステムは、本明細書で説明される様々な実施形態を実装するために利用可能なコンピューティングシステムの実施形態の模式図である。図１１に示されるシステムの様々なコンポーネントは、システムオンチップ（ＳｏＣ）アーキテクチャで、又は任意の他の好適な構成で組み合わせられてよいことが理解されよう。例えば、本明細書で開示される実施形態は、スマートセルラフォン、タブレットコンピュータ、パーソナルデジタルアシスタント、ポータブルゲームデバイス等のようなモバイルデバイスを含むシステムに組み込まれてよい。これらのモバイルデバイスは、少なくともいくつかの実施形態において、ＳｏＣアーキテクチャを備えてよいことが理解されよう。
【００７４】
図１２を参照すると、図１２は、本開示の例示的なＡＲＭエコシステムＳＯＣ１２００に関連する簡略化されたブロック図である。本開示の少なくとも１つの例示的な実装は、本明細書で説明されるマルチモーダルインタフェース機能及びＡＲＭコンポーネントを含んでよい。例えば、図１２の例は、任意のＡＲＭコア（例えば、Ａ−９、Ａ−１５等）に関連してよい。さらに、アーキテクチャは、任意のタイプのタブレット、スマートフォン（Ａｎｄｒｏｉｄ（登録商標）ｐｈｏｎｅ、ｉＰｈｏｎｅ（登録商標）を含む）、ｉＰａｄ（登録商標）、Ｇｏｏｇｌｅ  Ｎｅｘｕｓ（商標）、Ｍｉｃｒｏｓｏｆｔ  Ｓｕｒｆａｃｅ（商標）、パーソナルコンピュータ、サーバ、ビデオ処理コンポーネント、ラップトップコンピュータ（任意のタイプのノートブックを含む）、Ｕｌｔｒａｂｏｏｋ（商標）システム、任意のタイプのタッチ式入力デバイス等の一部であってよい。
【００７５】
図１２の本例において、ＡＲＭエコシステムＳＯＣ１２００は、複数のコア１２０６−１２０７、Ｌ２キャッシュ制御１２０８、バスインタフェースユニット１２０９、Ｌ２キャッシュ１２１０、グラフィクス処理ユニット（ＧＰＵ）１２１５、相互接続１２０２、ビデオコーデック１２２０、及び液晶ディスプレイ（ＬＣＤ）Ｉ／Ｆ１２２５を含んでよく、これらは、ＬＣＤに連結するモバイル産業プロセッサインタフェース（ＭＩＰＩ）／高精細度マルチメディアインタフェース（ＨＤＭＩ（登録商標））リンクに関連してよい。
【００７６】
ＡＲＭエコシステムＳＯＣ１２００は、加入者識別モジュール（ＳＩＭ）Ｉ／Ｆ１２３０、ブートリードオンリメモリ（ＲＯＭ）１２３５、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）コントローラ１２４０、フラッシュコントローラ１２４５、シリアルペリフェラルインタフェース（ＳＰＩ）マスタ１２５０、好適な電力制御１２５５、ダイナミックＲＡＭ（ＤＲＡＭ）１２６０、及びフラッシュ１２６５を含んでもよい。さらに、１つ又は複数の実施形態は、Ｂｌｕｅｔｏｏｔｈ（登録商標）１２７０、３Ｇモデム１２７５、グローバルポジショニングシステム（ＧＰＳ）１２８０、及び８０２．１１Ｗｉ−Ｆｉ１２８５の例のような、１つ又は複数の通信能力、インタフェース、及び機能を含む。
【００７７】
オペレーションにおいて、図１２の例は、比較的低い電力消費で様々なタイプのコンピューティング（例えば、モバイルコンピューティング、ハイエンドデジタルホーム、サーバ、無線インフラストラクチャ等）を有効化する処理能力を提供してよい。さらに、このようなアーキテクチャは、任意の数のソフトウェアアプリケーション（例えば、Ａｎｄｒｏｉｄ（登録商標）、Ａｄｏｂｅ（商標）Ｆｌａｓｈ（商標）プレイヤ、Ｊａｖａ（登録商標）プラットフォームスタンダードエディション（Ｊａｖａ（登録商標）ＳＥ）、Ｊａｖａ（登録商標）ＦＸ、Ｌｉｎｕｘ（登録商標）、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）Ｅｍｂｅｄｄｅｄ、Ｓｙｍｂｉａｎ及びＵｂｕｎｔｕ等）を有効化してよい。少なくとも１つの実施形態において、コアプロセッサは、連結された低レイテンシのレベル２キャッシュを伴うアウトオブオーダスーパースカラパイプラインを実装してよい。
【００７８】
図１３は、実施形態に係るプロセッサコア１３００を示す。プロセッサコア１３００は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、又はコードを実行する他のデバイスのような任意のタイプのプロセッサのコアであってよい。１つのプロセッサコア１３００のみが図１３に示されているが、代替的に、プロセッサは、図１３に示されるプロセッサコア１３００の１つより多くを含んでよい。例えば、プロセッサコア１３００は、図１１のプロセッサ１１７０及び１１８０を参照して図示及び説明されるプロセッサコア１１７４ａ、１１７４ｂ、１１８４ａ及び１１８４ｂの実施形態を表す。プロセッサコア１３００は、シングルスレッドコアであってよい。又は、少なくとも１つの実施形態では、プロセッサコア１３００は、コア毎に１つより多くのハードウェアスレッドコンテキスト（もしくは「論理プロセッサ」）を含んでよいという点において、マルチスレッドであってよい。
【００７９】
図１３は、実施形態に係るプロセッサコア１３００に連結されるメモリ１３０２をさらに示す。メモリ１３０２は、当業者に公知又はその他利用可能な、多様なメモリ（メモリ階層の様々な層を含む）のいずれかであってよい。メモリ１３０２は、コード１３０４を含んでよく、これは、プロセッサコア１３００によって実行されるべき１つ又は複数の命令であってよい。プロセッサコア１３００は、コード１３０４によって示される命令のプログラムシーケンスに従ってよい。各命令は、フロントエンドロジック１３０６に入り、１つ又は複数のデコーダ１３０８によって処理される。デコーダは、その出力として、固定幅のマイクロオペレーションのようなマイクロオペレーションを、予め定義されたフォーマットで生成してよく、又は、元のコード命令を反映する他の命令、マイクロ命令、もしくは制御信号を生成してよい。フロントエンドロジック１３０６は、レジスタリネーミングロジック１３１０及びスケジューリングロジック１３１２をさらに含み、これらは、概して、実行のために、リソースを割り当て、命令に対応するオペレーションをキューに入れる。
【００８０】
プロセッサコア１３００は、実行ユニット１３１６−１から１３１６−Ｎのセットを有する実行ロジック１３１４をさらに含んでよい。いくつかの実施形態は、具体的な機能又は機能のセット専用の多数の実行ユニットを含んでよい。他の実施形態は、実行ユニットを１つのみを含んでよく、又は特定の機能を実行する１つの実行ユニットを含んでよい。実行ロジック１３１４は、コード命令によって規定されるオペレーションを実行する。
【００８１】
コード命令によって規定されたオペレーションの実行完了後、バックエンドロジック１３１８は、コード１３０４の命令をリタイアさせてよい。一実施形態において、プロセッサコア１３００は、アウトオブオーダでの実行を可能とするが、命令のインオーダでのリタイアを必要とする。リタイアロジック１３２０は、様々な公知の形式（例えば、リオーダバッファ等）をとってよい。このように、プロセッサコア１３００は、コード１３０４の実行中に、少なくとも、デコーダによって生成される出力、レジスタリネーミングロジック１３１０によって用いられるハードウェアレジスタ及びテーブル、及び実行ロジック１３１４によって修正される任意のレジスタ（不図示）に関して、状態変化する。
【００８２】
図１３には示されていないが、プロセッサは、プロセッサコア１３００と共に、チップ上に他の要素を含んでよく、少なくともそのいくつかは、図１１を参照して本明細書において図示及び説明されている。例えば、図１１に示されるように、プロセッサは、プロセッサコア１３００と共に、メモリ制御ロジックを含んでよい。プロセッサは、Ｉ／Ｏ制御ロジックを含んでよく、及び／又は、メモリ制御ロジックと統合されたＩ／Ｏ制御ロジックを含んでよい。
【００８３】
本明細書で提供される例により、２つ、３つ、又はこれより多くのネットワーク要素に関するインタラクションが説明される場合があることに留意されたい。しかしながら、これは、明確性及び例示目的のためだけになされたものである。特定の場合には、限定的な数のネットワーク要素のみを参照することによって、所与のセットのフローの１つ又は複数の機能を説明することがより容易になる場合がある。通信システム１００及びその教示は、容易にスケーラブルとなり、多数のコンポーネント及びより複雑／洗練された配置及び構成に適応可能であることを理解されたい。従って、提供される例は、無数の他のアーキテクチャに潜在的適用されるものであり、通信システム１００の範囲を限定する、又はその広範な教示を阻害するものではない。
【００８４】
前述のフロー図（すなわち、図２、３、５、６、８及び９）におけるオペレーションが、通信システム１００によって、又はその内部で実行可能な、可能な相関シナリオ及びパターンのいくつかのみを示すものであることに留意することも重要である。これらのオペレーションのいくつかは、適宜削除もしくは除去されてよく、又は、これらのオペレーションは、本開示の範囲から逸脱することなく、大幅に変形もしくは変更されてよい。さらに、これら多数のオペレーションは、１つ又は複数の追加的なオペレーションと同時に、又はこれらと並列して、実行されるものとして説明されている。しかしながら、これらのオペレーションのタイミングは、大幅に変更されてよい。前述されたオペレーションのフローは、例示及び説明目的のために提供されている。任意の好適な配置、時系列性、構成、及びタイミングのメカニズムが本開示の教示から逸脱することなく提供可能である点で、実質的な柔軟性が、通信システム１００によって提供されている。
【００８５】
本開示は、特定の配置及び構成を参照して詳細に説明されたが、これらの例示的な構成及び配置は、本開示の範囲から逸脱することなく、大幅に変更されてよい。さらに、特定のコンポーネントが、特定の必要性及び実装に基づいて、組み合わせられ、分離され、削除され、又は追加されてよい。追加的に、通信システム１００は、通信処理を容易にする特定の要素及びオペレーションを参照して示されたが、これらの要素及びオペレーションは、通信システム１００の意図される機能を実現する任意の好適なアーキテクチャ、プロトコル、及び／又は処理によって置換されてよい。
【００８６】
多数の他の変化、代替、バリエーション、変更、及び変形が、当業者によって確認されることができ、本開示は、全てのこのような変化、代替、バリエーション、変更、及び変形を、添付の特許請求の範囲の範囲に属するものとして包含することが意図されている。米国特許商標庁（ＵＳＰＴＯ）、及び追加的に、本願に対して発行されたあらゆる特許のあらゆる読者が、本明細書に添付された特許請求の範囲を解釈するにあたってこれを支援するために、出願人は、出願人が（ａ）「手段」又は「段階」という単語が特定の請求項において具体的に用いられない限り、添付の特許請求の範囲のいずれかが、本願の出願日に現に存する米国特許法セクション１１２第６パラグラフを適用することを意図するものではなく、（ｂ）本明細書におけるいずれの記述によっても、添付の特許請求の範囲に反映されていないいずれかの態様で、本開示を限定することを意図していないことに留意されることを希望する。
【００８７】
他の説明及び例  例Ｍ１は、電子デバイスにおけるオペレーティングシステムからデータを受信する段階と、データ及び／又は関連データをローカルポリシマネージャに伝送する段階と、を含む方法である。ローカルポリシマネージャは、マルチモーダルインタフェースとの通信を行ってよく、データは、マルチモーダルインタフェースを介して電子デバイスとの通信を行うハードウェアに関するものであってよい。
【００８８】
例Ｍ２において、例Ｍ１の主題は、任意選択的に、マルチモーダルインタフェースが同じインタフェースにおいて、送電、方向性、及び複数の入出力（Ｉ／Ｏ）プロトコルをサポートするように構成されることを含んでよい。
【００８９】
例Ｍ３において、例Ｍ１−Ｍ２のいずれか１つの主題では、任意選択的に、受信されたデータが、それが受信される前に、ファームウェアを通過していてよい。
【００９０】
例Ｍ４において、例Ｍ１−Ｍ３のいずれか１つの主題では、任意選択的に、受信されたデータは、それが受信される前に、ファームウェアによって動作領域に書き込まれていてよい。
【００９１】
例Ｍ５において、例Ｍ１−Ｍ４のいずれか１つの主題は、任意選択的に、受信されたデータは、それが受信される前に、共有メモリに格納されていることを含んでよい。
【００９２】
例Ｍ６において、例Ｍ１−Ｍ５のいずれか１つの主題は、任意選択的に、ハードウェアに関連する応答データを、ローカルポリシマネージャから受信する段階と、応答データ及び／又は関連応答データを共有メモリに伝送する段階と、を含んでよい。
【００９３】
例Ｍ７において、例Ｍ１−Ｍ６のいずれか１つの主題は、任意選択的に、データは、プラットフォームポリシマネージャにおいて受信され、プラットフォームポリシマネージャは、複数のローカルポリシプラットフォームマネージャとの通信を行い、複数のローカルポリシプラットフォームマネージャの各々は、異なるタイプのハードウェアとの通信を行うことを含んでよい。
【００９４】
例Ａ１において、マルチモーダルインタフェースとの通信を行うための装置は、電子デバイスにおけるオペレーティングシステムから、マルチモーダルインタフェースを介して電子デバイスとの通信を行うハードウェアに関連するデータを受信し、データ及び／又は関連データをローカルポリシマネージャに伝送するように構成されるプラットフォームポリシマネージャを含んでよく、ローカルポリシプラットフォームマネージャは、マルチモーダルインタフェースとの通信を行う。
【００９５】
例Ａ２において、例Ａ１の主題は、任意選択的に、マルチモーダルインタフェースが同じインタフェースにおいて、送電、方向性、及び複数の入出力（Ｉ／Ｏ）プロトコルをサポートするように構成されることを含んでよい。
【００９６】
例Ａ３において、例Ａ１−Ａ２のいずれか１つの主題は、任意選択的に、受信されたデータが、ファームウェアを通過していることを含んでよい。
【００９７】
例Ａ４において、例Ａ１−Ａ３のいずれか１つの主題は、任意選択的に、受信されたデータは、それが受信される前に、ファームウェアによって動作領域に書き込まれていることを含んでよい。
【００９８】
例Ａ５において、例Ａ１−Ａ４のいずれか１つの主題は、任意選択的に、受信されたデータは、それが受信される前に、共有メモリに格納されていることを含んでよい。
【００９９】
例Ａ６において、例Ａ１−Ａ５のいずれか１つの主題は、任意選択的に、プラットフォームポリシマネージャは、ローカルポリシマネージャから、ハードウェアに関連する応答データを受信し、応答データ及び／又は関連応答データを共有メモリに伝送するようにさらに構成可能であることを含んでよい。
【０１００】
例Ｃ１は、少なくとも１つの機械可読記憶媒体であって、電子デバイスにおけるオペレーティングシステムから、マルチモーダルインタフェースを介して電子デバイスとの通信を行うハードウェアに関連するデータを受信することと、データ及び／又は関連データを、マルチモーダルインタフェースとの通信を行うローカルポリシマネージャに伝送することと、を、少なくとも１つのプロセッサによって実行された場合に、少なくとも１つの機械可読媒体に実行させる１つ又は複数の命令を有してよい。
【０１０１】
例Ｃ２において、例Ｃ１の主題は、任意選択的に、マルチモーダルインタフェースが同じインタフェースにおいて、送電、方向性、及び複数の入出力（Ｉ／Ｏ）プロトコルをサポートするように構成されることを含んでよい。
【０１０２】
例Ｃ３において、例Ｃ１−Ｃ２のいずれか１つの主題は、任意選択的に、受信されたデータが、ファームウェアを通過していることを含んでよい。
【０１０３】
例Ｃ４において、例Ｃ１−Ｃ３のいずれか１つの主題は、任意選択的に、受信されたデータは、それが受信される前に、ファームウェアによって動作領域に書き込まれていることを含んでよい。
【０１０４】
例Ｃ５において、例Ｃ１−Ｃ４のいずれか１つの主題は、任意選択的に、受信されたデータは、それが受信される前に、共有メモリに格納されていることを含んでよい。
【０１０５】
例Ｃ６において、例Ｃ１−Ｃ５のいずれか１つの主題は、任意選択的に、ローカルポリシプラットフォームから、ハードウェアに関連する応答データを受信することと、応答データ及び／又は関連応答データを共有メモリに伝送することと、を少なくとも１つのプロセッサによって実行された場合に、機械可読媒体に実行させる１つ又は複数の命令を含んでよい。
【０１０６】
例Ｓ１は、異なるタイプのハードウェアとの通信を行うためのマルチモーダルインタフェースシステムであって、システムは、電子デバイスにおけるオペレーティングシステムから、マルチモーダルインタフェースを介して電子デバイスとの通信を行うハードウェアに関連するデータを受信し、データ及び／又は関連データを、マルチモーダルインタフェースとの通信を行うローカルポリシマネージャに伝送するように構成されるプラットフォームポリシマネージャを含む。
【０１０７】
例Ｓ２において、例Ｓ１の主題は、任意選択的に、マルチモーダルインタフェースが同じインタフェースにおいて、送電、方向性、及び複数の入出力（Ｉ／Ｏ）プロトコルをサポートするように構成されることを含んでよい。
【０１０８】
例Ｓ３において、例Ｓ１−Ｓ２のいずれかの主題は、任意選択的に、受信されたデータが、ファームウェアを通過していることを含んでよい。
【０１０９】
例Ｓ４において、例Ｓ１−Ｓ３のいずれかの主題は、任意選択的に、受信されたデータは、それが受信される前に、ファームウェアによって動作領域に書き込まれていることを含んでよい。
【０１１０】
例Ｓ５において、例Ｓ１−Ｓ４のいずれかの主題は、任意選択的に、受信されたデータは、それが受信される前に、共有メモリに格納されていることを含んでよい。
【０１１１】
例Ｘ１は、例Ａ１−Ａ６、又はＭ１−Ｍ７のいずれか１つに示す方法を実装する、又は装置を実現する機械可読命令を含む機械可読記憶媒体である。例Ｙ１は、例示的な方法Ｍ１−Ｍ７のいずれかを実行する手段を備える装置である。例Ｙ２において、例Ｙ１の主題は、任意選択的に、プロセッサ及びメモリを備える方法を実行するための手段を含んでよい。例Ｙ３において、例Ｙ２の主題は、任意選択的に、機械可読命令を備えるメモリを含んでよい。
【図１】
0006757489.tif 000002
【図２】
0006757489.tif 000003
【図３】
0006757489.tif 000004
【図４Ａ】
0006757489.tif 000005
【図４Ｂ】
0006757489.tif 000006
【図５】
0006757489.tif 000007
【図６】
0006757489.tif 000008
【図７】
0006757489.tif 000009
【図８】
0006757489.tif 000010
【図９】
0006757489.tif 000011
【図１０】
0006757489.tif 000012
【図１１】
0006757489.tif 000013
【図１２】
0006757489.tif 000014
【図１３】
0006757489.tif 000015