本発明は、以下、添付図面を参照して説明され、全図面において、類似の参照符号は、類似の要素を参照するために用いられ、図示の構造および装置は、必ずしも一定の比率で描画されているわけではない。本願明細書において利用されるように、「構成要素」、「システム」、「インタフェース」等の用語は、コンピュータ関連のエンティティ、ハードウェア、(例えば、実行中の)ソフトウェアおよび/またはファームウェアを参照することを意図する。例えば、構成要素は、プロセッサ、プロセッサ上で実行するプロセス、コントローラ、オブジェクト、実行ファイル、プログラム、記憶装置および/または処理装置を有するコンピュータとすることができる。例えば、サーバ上で実行するアプリケーションおよびサーバもまた、構成要素とすることができる。1つまたは複数の構成要素は、プロセス内に存在することができ、構成要素は、1つのコンピュータ上にローカルに存在することができ、および/または、2つ以上のコンピュータ間で分散することができる。一組の要素または一組の他の構成要素は、本願明細書において記載可能であり、「組」という用語は、「1つまたは複数」と解釈可能である。
さらに、これらの構成要素は、例えば、モジュールとともに格納されるさまざまなデータ構造を有するさまざまなコンピュータ可読記憶媒体から実行することができる。構成要素は、ローカルおよび/またはリモートプロセスを介して、例えば、1つまたは複数のデータパケットを有する信号に従って通信することができる(例えば、データは、ローカルシステム、分散システムおよび/またはネットワーク全体における他の構成要素と相互作用する1つの構成要素からのものであり、ネットワークは、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたは信号を介して他のシステムを有する類似のネットワークである)。構成要素は、機械と称することもできる。
他の例として、構成要素は、電気または電子回路によって動作される機械部分により提供される特定の機能を有する装置とすることができ、電気または電子回路は、1つまたは複数のプロセッサによって実行されるソフトウェア・アプリケーションまたはファームウェア・アプリケーションによって動作可能である。1つまたは複数のプロセッサは、装置の内部にあっても外部にあってもよく、ソフトウェアまたはファームウェア・アプリケーションの少なくとも一部を実行することができる。さらに他の例として、構成要素は、電子構成要素により、機械部分なしで特定の機能を提供する装置とすることができ、電子構成要素は、電子構成要素の機能を少なくとも部分的に与えるソフトウェアおよび/またはファームウェアを実行するための1つまたは複数のプロセッサを含むことができる。
例示的用語の使用は、本発明の概念を具体的に提示することを意図する。本出願において用いられているように、「または」という用語は、排他的な「または」ではなく、非排他的な包含「または」を意味することを意図する。すなわち、特に明記しない限り、または、前後関係から明らかでない限り、「Xは、AまたはBを使用する」は、自然な非排他的な包含の順列のいずれかを意味することを意図する。すなわち、XがAを使用し、XがBを使用し、または、XがAおよびBを使用する場合、上述した例のいずれかに従って、「Xは、AまたはBを使用する」が満たされる。さらに、特に明記しない限り、または、前後関係から単数形に向けられることが明らかでない限り、本願明細書および添付の請求の範囲において用いられている単数形の冠詞は、一般的に、「1つまたは複数」を意味するものと解釈されるべきである。さらに、「含んでいる」、「含む」、「有している」、「有する」という用語またはその異形が詳細な説明および請求項において用いられる範囲において、この種の用語は、「備えている」という用語に類似の方法で非排他的な包含を意図する。
本願明細書では、「回路」という用語は、特定用途向け集積回路(ASIC)、電子回路、プロセッサ(共有、専用または群)および/またはメモリ(共有、専用または群)の一部であるか、または、これらを含むものとして参照されてもよく、ASIC等は、1つまたは複数のソフトウェアまたはファームウェア・プログラム、組み合わせロジック回路および/または記載されている機能を提供する他の適切なハードウェア構成要素を実行する。いくつかの実施形態では、回路は、1つまたは複数のソフトウェアまたはファームウェアモジュールにおいて実施されてもよく、または、回路に関連付けられた機能は、1つまたは複数のソフトウェアまたはファームウェアモジュールによって実施されてもよい。いくつかの実施形態では、回路は、ハードウェアにおいて少なくとも部分的に動作可能なロジックを含んでもよい。
導入
ハイパーバイザおよび仮想機械は、より大きなコンピューティング・インフラの利用効率を改善するために動作することができ、オリジナルのIBM360の形であれ、または、現在のx86、CPU、サーバラック/バンクまたは他の類似の処理装置の形であれ、ハイパーバイザおよび仮想機械は、例えば、一般的にハードウェアの利用効率を改善するアプリケーションまたはソフトウェアの一部とすることができる。本願明細書において、ハイパーバイザまたは仮想機械モニタ(VMM)は、区別せずに参照可能であり、そのいずれかは、仮想機械(VM)を作成および実行するコンピュータ・ソフトウェア、ファームウェアまたはハードウェアとみなすことができる。ハイパーバイザが1つまたは複数のVMを実行するコンピュータ、プロセスまたは処理装置は、ホスト機械と称することができ、各VMは、ゲスト機械と称することができる。これらのような製造テクノロジ(例えば、シリコンテクノロジ)を、適合可能な割り込みおよび割り込み応答時間を有するハードなリアルタイム・システム(現在では、以前よりはるかに重要である)に使用することは、VMMとの割り込みインタフェースの効率、および、特に、割り込み通信リンク内の効率、または、CPUパッケージまたは処理装置とのインタフェースの効率を改善する機会を提供する。
例えば、動作がより完全かつ完璧な仮想化を目指すことができる従来のサーバ技術環境では、処理動作が、資源サポートのためにゲスト・オペレーティングシステムに戻る前にハイパーバイザ内の1つまたは複数のプロセスを追跡または模倣する場合、ゲスト・オペレーティングシステムを妨害/変更することは、有害なものではない。特に、ハードウェアのリアルタイムの安全性の考慮(例えば、自動車の安全性等)に関して、一定量の準仮想化(すなわち、パブリック/ゲスト・オペレーティングシステムを変化し、安全特徴を保存するとともに、リアルタイム特徴を保存する)が可能になりうる。準仮想化は、ゲスト・オペレーティングシステムがVM内で再コンパイル可能な仮想化技術の強化とすることができ、VMに対する割り込みインタフェース・システムが、例えば、下にあるハードウェアと異なることを動的に可能にすることができる。
ハードウェアにおいて、本願明細書における特定の態様/実施形態については、割り込みは、動的かつリアルタイムな資源条件に基づいて、ゲスト・オペレーティングシステムに導かれる/向けられることができる。処理のためにハイパーバイザまたはVMMに向けられるアプリケーションまたはタスクのすべての割り込みを予め構成するよりはむしろ、決定ロジックまたは判断プロセスの組は、VMMおよび関連付けられたソフトウェアが、割り込みをどう処理すべきか、および、割り込みをどの資源に向けるべきかを決定するのを可能にするように構成可能である。
特定の態様/実施形態では、CPUは、VMMおよび1つまたは複数のVMを含むすべての割り込み構成要素の状態に並列にまたはすべて一緒に即座に常に気付くように構成可能である。これらのVMおよびハイパーバイザ/VMMは、同じプロセッサ・パッケージ、パッケージングコアまたは同じ装置上に位置するCPUの処理構成要素によって制御、管理または可能にされうる。CPUは、VMMモードまたはVMxモードで動作することができ、xは任意の自然数であり、CPUによってホストされるゲスト機械またはVMの数の関数とすることができる。CPUが、例えば、VMMモードでまたはVMxモードで動作する場合、CPUは、並列に(または即座に)割り込みバスを介して、各VM/ゲスト機械およびVMMのために、各VMおよびVMMのための最高優先度を有する任意の保留中の割り込みの知識を有する。
動作モードに応じて、CPUまたはCPUのプロセッサ構成要素は、新規な割り込みを、任意の所定のまたはターゲットのVMに、VMモードにおいて直接渡すことを決定する、または、VMMモードへ切り替え、例えば、意思決定または割り込みプロセスをVMMにVMのために委任することを決定することができる。この新規な割り込みは、CPUの1つのVMからCPUの他のVM、例えば、CPUの内部的に制御された他の構成要素までとすることができ、同様に、例えば、装置アプリケーションの外部構成要素からとすることもできる。追加の態様、実施形態または開示の詳細は、以下、図面を参照してさらに記載される。
図1は、いつかの例示的実施形態に従う、システムまたはネットワーク装置100の構成要素を示すブロック図であり、構成要素は、命令を機械可読またはコンピュータ可読媒体(例えば、機械可読記憶媒体)から読み出すことができ、本願明細書において述べられる機能、動作、プロセスまたは方法の任意の1つまたは複数を実行する。システムまたは装置100の1つまたは複数の構成要素は、ネットワーク装置またはシステム内でまたはこれらの一部として使用または利用可能であり、ネットワーク装置またはシステムは、例えば、モバイル機器、無線装置、ネットワーク装置/構成要素(例えば、ネットワークアクセスノード、ネットワーク・オーケストレータ、ネットワークサーバ、ラックサーバ、ネットワーク・コントローラ/プロセッサ、ネットワーク・データベース、CPU等)である。詳しくは、図1は、ネットワーク装置またはシステム100内での使用のために構成可能なハードウェア資源101の図の表現を示し、ネットワーク装置またはシステム100は、1つまたは複数のプロセッサ(またはプロセッサコア)110、1つまたは複数のメモリ/記憶装置120および1つまたは複数の通信資源130を含み、各々は、通信リンク(例えば、バス140)または他の接続(例えば、光リンク、無線接続、有線接続または他の同様の通信接続)を介して通信可能に結合可能である。
ノードの仮想化が利用可能な実施形態のために、ネットワーク機能仮想化(NFV)動作のように、ハイパーバイザ102(またはVMM)が実行され、1つまたは複数のネットワーク・スライス/サブスライスのための実行環境を提供し、ハードウェア資源101を利用することができる。この種のハイパーバイザ102は、例えば、コンピュータ・ソフトウェア、ファームウェアまたはハードウェア資源を備える仮想機械モニタ(VMM)を備えることができ、これらは、仮想機械上で作成または実行し、コンピュータ/処理装置上で動作する。本願明細書において参照されるように、仮想化は、機能を装置から除去すること、および、機能をネットワーク上の他の装置に割り当てるまたは再配置することを称することができ、これは、ソフトウェア、ファームウェア、専門ハードウェア、または、例えば、装置、システムまたはネットワーク内の異なる位置の他の構成要素に類似または同じ機能を実行するための組み合わせのいずれかとして行われる。
プロセッサ110(例えば、CPU、縮小命令セットコンピューティング(RISC)プロセッサ、複雑命令セットコンピューティング(CISC)プロセッサ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、例えばベースバンド・プロセッサ、特定用途向け集積回路(ASIC)、高周波集積回路(RFIC)、他のプロセッサまたはこれらの任意の適切な組み合わせ)は、例えば、任意数の処理構成要素、例えばプロセッサ112およびプロセッサ114を含むことができる。メモリ/記憶装置120は、メインメモリ、ディスク記憶装置または任意のこれらの組み合わせを含むことができる。
通信資源130は、相互接続および/またはネットワーク・インタフェース構成要素または1つまたは複数の周辺装置104と通信するまたはネットワーク108を介して1つまたは複数のデータベース106と通信する他の適切な装置を含むことができる。例えば、通信資源130は、有線通信構成要素(例えば、ユニバーサルシリアルバス(USB)を介した結合のため)、セルラー通信構成要素、近距離無線通信(NFC)構成要素、ブルートゥース(登録商標)構成要素(例えば、ブルートゥース(登録商標)ローエナジー)、Wi-Fi(登録商標)(Wi-Fi/WiFi)構成要素および他の通信構成要素を含むことができる。
命令150は、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、または、プロセッサ110の少なくともいずれかに、本願明細書において述べられる方法の任意の1つまたは複数を実行させるための他の実行コードを備えることができる。命令150は、全体的または部分的に、プロセッサ110(例えば、プロセッサのキャッシュメモリ内)、メモリ/記憶装置120またはこれらの任意の適切な組み合わせの少なくとも1つ内に存在することができる。さらに、命令150の任意の部分は、周辺装置104および/またはデータベース106の任意の組み合わせからハードウェア資源101に転送可能である。従って、プロセッサ110のメモリ、メモリ/記憶装置120、周辺装置104およびデータベース106は、コンピュータ可読媒体および機械可読媒体の例である。
一態様では、ネットワーク装置100は、信号を、無線装置、例えば、AP、アクセス端末、無線ポートおよびルータ等に、一組のL個のアンテナ1201~Lを介して送受信することができ、アンテナ1201~Lは、本願明細書に記載されている1つまたは複数の実施形態または態様に従って構成可能である。一例では、アンテナ120は、通信プラットフォーム130の一部として実施可能であり、次に、通信プラットフォーム130は、電子構成要素および関連付けられた回路、および/または、受信信号および送信信号の処理および操作を提供する他の手段を備えることができる。アンテナ120は、本願明細書に開示される異なる態様または実施形態を組み込むさまざまなアンテナ要素を備えることができる。
一態様では、通信プラットフォーム/資源130は、受信信号および他の送信信号の処理および操作を提供する関連付けられた回路を有する電子構成要素を含むことができる。通信プラットフォーム130は、受信機/送信機またはトランシーバ116をさらに備えることができ、トランシーバ116は、信号を送受信することができ、および/または、この種の信号における1つまたは複数の処理動作(例えば、受信時のアナログデジタル変換、送信時のデジタルアナログ変換等)を実行することができる。さらに、トランシーバ116は、単一のデータ流を複数の並列データ流に分割することができる、または、逆の動作を実行することができる。
さらに、ネットワーク装置100は、表示インタフェース122を含むことができ、表示インタフェース122は、装置100の機能を制御する機能を表示することができる、または、その動作条件を公開することができる。さらに、表示インタフェース122は、スクリーンを含み、情報をエンドユーザに送信することができる。一態様では、表示インタフェース122は、液晶ディスプレイ、プラズマパネル、モノリシック薄膜ベースのエレクトロクロミックディスプレイ等とすることができる。さらに、表示インタフェース122は、聴覚指示の通信を容易にする構成要素(例えば、スピーカ)を含むことができ、この構成要素は、動作命令をエンドユーザに送信するメッセージに関連して使用可能である。表示インタフェース122は、(例えば、連結されたキーパッドを介した、または、タッチジェスチャを介した)データ入力を容易にすることもでき、データ入力によって、アクセス装置および/またはソフトウェア100は、外部コマンド(例えば、再開動作)を受信することができる。
広帯域ネットワーク・インタフェース124は、ネットワーク装置100がネットワーク108に接続するのを容易にし、ネットワーク108は、バックホール・リンク(図示せず)を介した1つまたは複数のネットワーク/セルラー技術を含むことができ、入出力データフローを可能にする。広帯域ネットワーク・インタフェース124は、ネットワーク装置100の内部にあっても外部にあってもよく、表示インタフェース122をエンドユーザ相互作用および状態情報配信のために利用することができる。
1つまたは複数のプロセッサ110は、1つまたは複数のプロセッサ112、114を含むことができ、プロセッサ112、114は、通信プラットフォーム/資源130に機能的に接続可能であり、データ(例えば、シンボル、ビットまたはチップ)上の動作を容易にすることができ、動作とは、多重化/逆多重化、例えば、直接および逆の高速フーリエ変換、変調率の選択、データパケット・フォーマットの選択、パケット間時間等に作用するものである。さらに、1つまたは複数のプロセッサ110は、データ、システムまたはアドレスバス140を介して、表示インタフェース122および広帯域ネットワーク・インタフェース124に機能的に接続可能であり、機能をこの種の構成要素の各々に少なくとも部分的に与える。
他の例では、マルチプレクサ/デマルチプレクサ(MUX/DEMUX)ユニット117は、トランシーバ116に結合可能である。MUX/DEMUXユニット117は、例えば、時間および周波数空間において信号の操作を容易にすることができる。追加的または代替的に、MUX/DEMUXユニット117は、情報(例えば、データ/トラフィック、制御/信号送信等)の多重化を、さまざまな多重化スキームに従って、例えば、時分割多重化(TDM)、周波数分割多重化(FDM)、直交周波数分割多重化(OFDM)、コード分割多重化(CDM)、空間分割多重化(SDM)等に従って行うことができる。さらに、MUX/DEMUXユニット117は、情報のスクランブルおよび拡散を、一般的に従来技術において周知の実質的に任意のコードに従って、例えば、アダマール・ウォルシュ・コード、ベーカー・コード、カサミ・コード、多相コード等に従って行うことができる。
さらなる例では、通信プラットフォーム130内で実施される変調器/復調器(MOD/DEMOD)ユニット118は、情報の変調を、複数の変調技術に従って、例えば、周波数変調、振幅変調(例えば、L変数直交振幅変調(L-QAM)等)、位相偏移変調(PSK)等に従って行うことができる。さらに、通信プラットフォーム130は、受信信号を復号するおよび/または送信信号を符号化するのを容易にする符号器/復号器(コーデック)モジュール119を含むこともできる。
他の態様によれば、無線端末/ネットワーク装置またはシステム100は、プロセッサ110(例えば、112、114)を含むことができ、プロセッサ110は、機能を、少なくとも部分的にネットワーク装置/システム100によって利用される実質的に任意の電子構成要素に与えるように構成される。システム100においてさらに示すように、電源125は、送電網に取り付けることができ、1つまたは複数のトランスを含むことができ、無線端末100に関連付けられたさまざまな構成要素および/または回路が動作可能な電力レベルを達成する。一例では、電源125は、再充電可能な電力機構を含むことができ、無線端末100が送電網から分離され、送電網が動作していない等の場合、無線端末100の継続的な動作を容易にする。
さらなる態様では、プロセッサ110は、通信プラットフォーム130に機能的に接続可能であり、データ(例えば、シンボル、ビット、チップ等)上のさまざまな動作を容易にすることができ、動作とは、直接および逆の高速フーリエ変換、変調率の選択、データパケット・フォーマットの選択、パケット間時間等に作用することを含むことができるが、これらに限定されるものではない。他の例では、プロセッサ110は、データまたはシステムバス140(例えば、無線PCIE等)を介して、システム100内に示されていない他の任意の構成要素または回路に機能的に接続可能であり、機能を、この種の構成要素の各々に、例えば本願明細書に開示されるアンテナシステムによって少なくとも部分的に与える。
さらに示されるように、メモリ120またはデータベース106は、無線端末/装置/システム100により用いられ、データ構造、コード命令150およびプログラムモジュール、システムまたは装置情報、スクランブル、拡散および試験的送信のためのコードシーケンス、位置情報記憶(location intelligence storage)、決定された遅延オフセット、無線伝播モデル等を格納することができる。1つまたは複数のプロセッサ110は、メモリ120またはデータベース106に結合され、動作するおよび/または機能を通信プラットフォーム130および/または無線端末100の他の任意の構成要素に与えるのに必要な情報を格納および導出することができる。
さらに、装置100について上述したアンテナシステムは、例えば、高周波数帯域範囲内の広範囲の周波数で動作するようにも構成され、さらに、しばしば対になっていない無認可のスペクトルを用いるピア・ツー・ピア(例えば、携帯電話間)アドホック・ネットワークシステム、102.xx無線LAN、ブルートゥースおよび任意の他の短距離または長距離、無線周波数範囲および通信技術を含む。本願明細書に開示される狭帯域アンテナ要素、例えば、開示される装置のアンテナ共振システムは、例えば、他の周波数範囲でも動作するように構成可能である。
他の例では、本願明細書に開示される構成要素は、表示インタフェース122のような他の構成要素と無線装置のように無線通信する、または、例えば、無線USB装置のような他の無線インタフェースと無線通信するように動作することができる。例えば、無線USB装置は、周波数範囲内で通信することができる。さらに、開示されるアンテナシステムは、他の無線接続、構成要素、インタフェースまたは装置と通信するように構成され、無線構成要素間の通信のための通信インタフェースを提供することができる。例えば、PCB間のインタフェースは、高帯域アンテナシステムならびにマイクロ波・ミリ波通信によって、1つまたは複数の内部または外部構成要素の間で容易にされることができる。他の通信インタフェースもまた、開示されるアンテナ要素によって、例えば、インターネット・オブ・シングス(IoT)間の構成要素、ウェアラブル構成要素、携帯電話間、ネットワーク基地局(例えば、マクロセルネットワーク装置、フェムトセル装置、ピコセル装置または他のネットワーク装置)またはこれらの任意の組み合わせによって、例えば、アンテナ要素の1つまたは複数を介して、例えば、アンテナシステムまたは本願明細書の装置を介して通信するのを容易にされることができる。本願明細書に開示されるアンテナシステムが、異なる周波数範囲で動作することができ、1つまたは複数の無線構成要素または装置と、または、これらの間での通信を容易にすることができる追加の他の例もまた想定される。例えば、工業、科学および医療(ISM)無線帯域、レーダー帯域幅または周波数スペクトルの他の範囲もまた、開示されているアンテナシステムによる通信のために容易にされることができる。
ネットワーク装置/システム100または関連付けられた割り込みインタフェースの構成要素は、1つの物理ノード内または別々の物理ノード内で実施可能であり、物理ノードは、命令を機械可読またはコンピュータ可読媒体(例えば、非一時的機械可読記憶媒体)から読み出し、実行するための構成要素または機能を含む。いくつかの実施形態では、ネットワーク機能仮想化(NFV)を利用して、任意の1つまたは複数の記載された処理または割り込み機能を、1つまたは複数のコンピュータ可読記憶媒体内に格納される実行可能命令を介して仮想化する(以下で詳述される)。
NFVアーキテクチャおよびインフラを用いて、1つまたは複数のネットワーク機能を仮想化することができ、代替的には、NFVアーキテクチャおよびインフラは、専用のハードウェアによって、例えば、業界標準サーバハードウェア、記憶装置ハードウェアまたはスイッチの組み合わせを備える物理資源/構成要素上で実行可能である。換言すれば、NFV構成要素/装置/システムを用いて、1つまたは複数の割り込み構成要素/機能の仮想のまたは再構成可能な実施態様を実行することができる。
図2には、図1のプロセッサ110および構成要素に含まれる/一部である/通信可能に結合可能である一例の割り込みインタフェース・システム200が示される。システム200は、CPU204/他のプロセッサ構成要素に通信可能に結合される割り込みコントローラまたは割り込み制御装置(ICU)202/プロセッサ構成要素を含み、割り込みコントローラまたは割り込み制御装置(ICU)202/プロセッサ構成要素は、単一のCPU204にマップされる保留中の割り込みの間で仲裁し、例えば、プロセッサ110またはプロセッサ110内の任意の1つのプロセッサ112、114のユニットとすることもできる。
単一のハードウェアCPU202は、割り込みをマップすることができ、割り込みは、最高約255までの優先度を有することができ/正反対には最低ゼロからの優先度を有することができ、割り込みは、優先度ベクトル220(例えば、8ビット優先度ベクトル)を介して、割り込みの優先度をもって、CPU204に、1つまたは複数の割り込みインタフェースバス208を介して、さらに包含または通信可能である。ベクトル220の受信に応答して、CPU204は、バス206上の割り込み承認(ACK)によって応答することができ、バス206は、例えば、半二重バスまたは全二重バスまたは光リンク等の他の通信リンクとすることができる。
割り込みまたはサービス要求がCPU204によってICU202または他の構成要素から受信されると、CPU204によってタスクとしてサービスされなければならず、タスクは、プログラミングまたはシステム制御として動作するファームウェア/ハードウェアとしての実行の基本的なユニットとすることができ、タスクは、例えば、専用インスタンス上のアプリケーションのために実行されるプロセスとして、プログラムまたはプログラムの連続した呼び出しの少なくとも一部とすることができる。さらに、CPU204上で実行される各タスクもまた、優先度を含むことができる。
さらに、ICU202は、割り込みをオンチップ資源または外部資源から取得することができる。割り込みは、CPU204により利用される資源に対する注意のためのサービス要求とすることができる。ICU202は、例えば、情報を追加することによって、割り込みを割り込み要求に変えることができ、本願明細書では、割り込みおよびサービス要求を区別せずに用いることができ、資源、例えば、VM、VMM、処理アレイまたは構成要素がビジーであるかまたは他のタスクを実行中のとき、割り込みは、例えば、割り込みサービスルーチンまたは他の割り込みプロセスをトリガするサービス要求として受信される。
ICU202は、単一の信号220をCPUx204に送信し、単一の信号220は、アプリケーションまたは他の構成要素がCPU204に対して、割り込みサービスルーチン(ISR)を開始することによって処理を望むことについての情報を送信する。このように、ICU202内の単一の信号情報は、この追加情報を用いて強化される。
例えば、ICU202は、優先度情報を割り込みに追加し、割り込みに割り込み優先度を提供することができ、CPUのための他のすべての保留中の割り込みの間で仲裁することができ、さらに、割り込みサイズのような他の情報をCPU204に送信することができる。このように、ICU202は、ハイパーバイザまたはVMMサポートを有するCPU204と一体化される/一部としての処理/プロセッサ装置として動作することができる。これは、CPU202が、そこに存在するまたはその上で動作するアプリケーション・ソフトウェアを有するオペレーティングシステムの単一のタスクを必ずしも実行しているというわけではないことを意味する。オペレーティングシステムは、0から255までの優先度割り込みの優先度もまた得る単一のアプリケーション・ソフトウェアとすることができる。
CPU204は、VMM210と、例えば、VM0(212)、VM1(214)、VM2(216)を備える複数のVMと、を含むことができる。ベクトル220のグレーの部分は、ICU202の信号送信を、VMx(例えば、VM0(212)、VM1(214)またはVM2(216))/VMM210に、指定される有効なサービス要求/割り込みのために提供することができる。ベクトル220のグレーでない部分は、VMx/VMMのための有効なサービス要求/割り込みがないことを空のスロットとして示すことができる。CPU204内のICU202からのこれらの割り込みは、例えば、単一の信号またはベクトルとして、異なる機械のためとすることができ、例えば、異なる仮想機械のための割り込みは、本願明細書における一態様の一部として、ICU202からCPU204まで時分割多重化可能である。
各VMは、オペレーティングシステムに加えてアプリケーション・ソフトウェアおよび割り込みを含むことができ、割り込みは、例えば、0から約255までの優先度または異なる優先度の範囲を有し、ならびに、優先度に基づき勝つ割り込みを決定または識別するために互いに異なる優先度方式またはプロトコルを有する。いくつかの動作では、例えば、0から255の優先度(または優先度の他の範囲)を有する新規な割り込みが来るときはいつでも、割り込みは、CPU204に送信され、VMM210は、呼び出され/信号送信され/トリガされ、VMMは、例えば、優先度番号がVM0(212)のような特定のVMにまたは他の特定のVMにマップされることを理解し/導出し、そのVMx(例えば、VM0(212))を、割り込みを有する関連付けられたタスクの実行のために優先度方式に基づいて呼び出し、その他の割り込みは、タスクの現在の実行のために待ち行列に入れられる。次に、すべての割り込みの仲裁は、1つの仮想機械にマップ可能であり、仮想機械において、すべての割り込みの勝者は、VM0(212)のために送信可能であり、同様に、VM1(214)、VM2(216)等のために、すべての保留中の割り込みの間から各VMの勝つ要求/割り込みが送信可能である。
図3には、本願明細書の1つまたは複数の態様/実施形態に従って、割り込みインタフェースを有する例示的CPUが示される。CPU310が示すCPUは、VMM210と、インタフェースバス(図示せず)を介してCPUプロセッサ状態語(PSW)304に通信可能に結合される複数のVM212~216と、ICR306と、対応するレジスタとしての以前のコンテクスト情報レジスタ(PCXI)308と、を有する。
CPU302およびCPU310は、CPUインターネット制御レジスタ(CPU ICR)306を備え、CPUインターネット制御レジスタ(CPU ICR)306は、ICU202から例えばCPU302、310に送信される情報を含む、または、内部CPU構成要素、例えば、VMM、VMまたは他の構成要素により送信される情報を含む。CPU302およびCPU310は、例えば、プロセッサ110またはプロセッサ110内の任意の1つのプロセッサ112、114のユニットである/一部である/結合可能である。送受信する情報は、現在のタスク優先度、すなわち実行するCPUソフトウェアの優先度と、ICU202によってCPU302、310に送信される最新の割り込み優先度と、追加の制御ビットと、を含むことができ、追加の制御ビットは、CPUが現在、タスク/サブタスク優先度より高い優先度を有する新規な割り込みによって割り込み可能であるか、または、所定の閾値を満たすかを示す。
PSW304は、各インスタントで構成要素またはCPUの条件を記載するワード/バイトとすることができ、どのクラスの動作が禁止または許可されるかを示すことができ、CPUまたはプロセッサに関連付けられた割り込みの状態を示すことができる。PSW304はまた、現在実行されている命令のアドレスを示すこともできる。このように、CPU310は、機構のためのリアルタイム・システムサポートを可能にし、機構によって、アプリケーション・ソフトウェアは、割り込みシステムを介して受信される新規な割り込みが実行中のタスクに割り込み可能にする条件を制御することができる。
特に、CPU310は、ICR306に、例えば、現在のCPU優先度番号(ICR.CCPN)312と、保留中の割り込み優先度番号(ICR.PIPN)314と、割り込み可能ビット(ICR.IE)316と、を提供することができる。ICR.CCPN312は、ビットフィールドを備えることができ、ビットフィールドは、オペレーティングシステムによって設定可能であり、現在のソフトウェアタスクの優先度番号を示し、優先度番号では、例えば、より高い値がより高い優先度を有することができる。本願明細書において参照されるCCPNは、現在の機械優先度番号(CMPN)と同様に称することができ、逆もまた同様であり、前後関係に応じて区別せずに使用可能である。
ICR.PIPN314は、割り込みシステムハードウェア、例えば、ICU202またはCPU204、302、310のプロセッサ構成要素(例えば、PC408)によって設定可能なビットを備えることができる。ICR.PIPN314は、このCPU310によってサービスされる保留中の割り込み(サービス要求)を示す。例えば、PIPN=0は、例えば、より高い優先度を有するより高い値によって、「保留中の割り込みではない」と定義される。
ICR.IE316は、ビット割り込み可能と設定されると、アクティブになりうる。このビット316が設定される(または真である)場合、さらに、以下の閾値、PIPN>CCPNが満たされると、すなわちPIPN314がCCPN312番号より大きい場合、CPU310は、PIPN番号によって定義される割り込みサービスルーチン(ISR)から開始する。このように、CCPN312≧PIPN314である限り、CPU310は、ISRを開始することができる。
IE316が設定されない限り、CPU310は、PIPN314レジスタ値を無視することができる(CPU310が任意の新規な割り込み/サービス要求を無視できる(動作を無視/保留できる)ことを意味する)。IEビット316は、ISRのスタートに応答して、ハードウェアによって自動的にクリア可能である。この機構によって、ISRは、より高い優先度(例えば、より高いPIPN)を有する割り込み/サービス要求によって再び割り込みされうる前に最小数の命令を実行することができる。ソフトウェア/CPU310プロセッサ構成要素は、再び割り込みされる用意ができると、次に、IE316を再び設定することができる。
CPU310は、PCXI308レジスタをさらに含み、PCXI308レジスタは、以前の割り込み/サービス要求によって割り込みされた以前の割り込みまたはタスクに関連したデータを制御する。この情報/関連データは、以前のCPU優先度番号(PCXI.PCPN)、PCXIおよび以前のCPU割り込み可能性(PCXI.PCIE)を含むことができ、各々は、以前の割り込み/サービス要求によって割り込みされたタスクについてのデータを提供する。このPCXI情報は、以前のタスクの関連したソフトウェアまたはアプリケーションが「割り込み命令からのリターン」(RFI)命令を実行するように望むとき、CPUハードウェア310により用いられることができ、以前に割り込みされたタスクを継続することができ、例えば、割り込みされた資源または構成要素によって以前のタスクへのリターンを容易にすることができる。CPU310は、アプリケーション/ソフトウェアがRFIを実行し、以前のタスクにリターンするか(PCXI.PCPNとしてレジスタ構成要素308内に保存されるタスク優先度を有する)、または、新規な保留中の割り込み/サービス要求から直接開始するか(ICR.PIPN314内で利用できるサービス要求優先度を有する)、を決定することができる。このように、ソフトウェア/アプリケーションが、実行される以前に割り込みされたタスクのためのRFIを実行することを要求する状況に応答して、ICR.PIPN314がPCXI.PCPNより大きい(例えば、ICR.PIPN314>PCXI.PCPN)場合、または、関連した閾値を満たす場合、CPU310は、新規な割り込み/サービス要求を有する動作を開始することができ、さもなければCPU310は、実行のための以前のタスクにリターンすることができる。
VMMサポートを有するCPUのための割り込みインタフェースは、CPUに単一の割り込みインタフェースおよび特別でないハードウェアサポートを提供することができ、しばしば、CPUに、VMMのための1つの割り込みインタフェースおよびVMのための1つの割り込みインタフェースを与えることができる。このように、すべての割り込みは、VMM210によって処理可能である。これが意味するのは、すべての割り込みが1つの優先度方式(例えば0~255)においてCPUにマップ可能であり、任意の割り込みがVMM呼び出しを実行のために要求し、VMM210が一度に1つのみの割り込みを見る/対応することができ、または、VMMオーバヘッドが割り込みの数に線形接続されていることである。
すべての割り込み(現在保留中または到来する、1つまたは複数のCPU構成要素または他の装置構成要素からの新規な割り込み)がVMM210によって処理されるとき、これが意味することができるのは、すべてのVMx(例えば、212~216)割り込みが、各VMxのための対応するまたは個々の優先度方式の代わりに、単一の優先度方式(例えば0~255)にマップ可能であり、VMM割り込みが専用の優先度方式(例えば0~32)を用いて可能であり、任意の割り込みがVMM呼び出し(またはVMMに向けられた開始のための動作/信号)を要求し、VMM210が1つのみのVMMおよび1つのみのVMx割り込みを同時に見ることができ、または、VMMオーバヘッドが割り込みの数に線形接続されていることである。
図4は、本願明細書の他のさまざまな態様/実施形態に従って、他の例示的CPU402を示す。CPU402は、例えば、ハイパーバイザ/VMMサポートによって構成可能であり、ハイパーバイザ/VMMサポートは、割り込みを処理するための性能オーバヘッドを大幅に減少することができ、割り込みインタフェースのために、または、CPU402またはプロセッサの構成要素に一体化された割り込みバスシステムのために利用されるクロックサイクルの数を減少することができる。CPU402もまた、CPU302およびCPU310と同様に、および、本願明細書の任意の他のプロセッサまたはCPUと同様に、例えば、プロセッサ110またはプロセッサ110内の任意の1つのプロセッサ112、114のユニットである/一部である/結合可能である。
一態様では、CPU402は、PSW404、ICR_CTRL406、プロセッサ装置408、VMM410および一組のVM412~416を備える。CPU402のVMM410およびVM412~416は、各々、対応するICR420、424、428および432を備え、これらは、各々、図3のCPU310のICR306に類似の構成要素を備えることができる。さらに、CPU402のVMM410およびVM412~416は、各々、対応するPCXI422、426、430および434をそれぞれ備え、これらすべては、一緒にバス450を介して1つまたは複数のインタフェースでそれぞれ結合され、CPU402は、各構成要素からのデータに同時にまたは並列に即座に気付くまたは処理することができる。
図3のICR306について上述したように、ICRレジスタ420、424、428および432は、現在のタスク優先度、保留中の割り込み優先度および割り込み可能状態を(例えば、バス450等を介して)示すように構成される。さらに、PCXI422、426、430および434は、バスを介して、以前の/割り込みされたタスクに関連した情報を示すように構成可能であり、情報は、対応する構成要素、VMM、VMまたはCPUによって実行される以前の/割り込みされたタスクの可能状態を含む。
一例では、CPU402は、各機械、VMM410および各VMx412、414、416からの並列入力に、その専用の割り込み優先度方式を用いて気付く/動作することができる(例えば、優先度0~255を有するVMM410への割り込み、優先度0~255を有するVM0(412)への割り込み、優先度0~255を有するVM1(414)への割り込み、優先度0~255を有するVM2(416)への割り込み)。CPU402ハードウェアは、現在の機械ソフトウェアタスクの状態に気付く(VMM410、または、VMM410ではない場合にはVMx412~416は、現在動作している、または、実行ビジー状態ではない)。VMM410および各VMx412~416の状態は、CPU402または関連付けられた処理構成要素に、例えば、CPUハードウェアおよびVMMソフトウェアに並列に/同時にトランスペアレントになることができる。このように、示されるCPU402の構成要素を通信可能に結合するインタフェースバス450は、1つまたは複数の現在のタスク優先度、1つまたは複数の保留中の割り込み優先度および割り込み可能性に関してトランスペアレントに動作することができる。これらの態様によって、CPU402は、例えば、CPU402上のVMによる実行のために提供されるまたは到来する仮想機械サービス要求または割り込みのより柔軟な実行をサポートすることができる。
他の態様では、専用の優先度方式は、VMx412~416ごとに独立して、および、VMM410のために提供可能であり、または、使用可能にされ、その出力は、VMM410によって、または、CPU402の処理装置408によって、CPUの動作モード(VMモードまたはVMMモード)に応じて集計可能であり、受信可能であり、処理可能である。現在実行中のVMにマップされる割り込みは、任意のVM412~416に、VMM呼び出しなしで、または、換言すれば、プロセッサ構成要素408によって、あたかも、例えば、VM動作モードにあるかのように、直接転送可能である。
ハードウェア制御/決定機構またはプロセッサ構成要素(例えば、PC408)は、VMM410によって構成可能であり、VMM410は、VMx(例えば、412~416)が異なるVMに対するサービス要求によって、または、換言すれば、CPU402のVM間の割り込み/サービス要求によって割り込み可能な条件を定義する。
さらに、(PIPNおよびCCPNの他に、すなわち、PIPNおよびCCPNに加えて)追加の優先度閾値は、VM(例えば、VM0(412))が他のVM(VM1(414))にマップされる割り込みによって、直接割り込み可能であるか否か(またはいつ割り込み可能であるか)を含む決定における要因であるために定義可能である。すなわち、同じCPU402のVMの間からの割り込みおよび応答するISRを可能にする決定は、VMM410からのVMM呼び出しなしで、以下の1つ以上(すなわち、PIPN、CCPN、または、追加の優先度/満たされる追加の優先度閾値)に基づいて、PC408によるこの決定動作の要因/機能として直接実施されるように決定可能である。
他の態様/実施形態では、CPU402は、そのハードウェア(例えば、処理構成要素または処理機能)をICR406にさまざまなVM412~416のために複製するように構成可能であり、これは、割り込みハードウェアに、割り込みを特定のVM412~416、VMM410のために提示する能力を与え、CPUは、ただ1つの優先度を一度比較するよりむしろ、複数の優先度を並列に比較する。このように、CPU402は、処理構成要素408を介して、例えば、各構成要素404~434から並列に入力される情報を有することができ、この情報は、多重化可能または比較可能な複数の異なる優先度を有し、CPU402は、割り込みサービス要求、現在の条件および以前の条件を決定し、ISRを開始し、実行されるタスクのためにゲスト・オペレーティングシステムのアプリケーションの専用のインスタンス上の構成要素/資源に割り込みすることができる。それゆえ、CPU402は、複数の機械割り込み(VM割り込み)を並列に受信/処理するように動作することができ、割り込みを直ちにゲスト・オペレーティングシステムに受け入れるべきか、または、割り込みを直ちにハイパーバイザ/VMMに受け入れるべきか、または、割り込みがいずれも行われなかったので、割り込みを一般的に無視するべきかについて、並列にハードウェア決定をするように動作することができる。
他の態様では、CPU402は、複数の動作モードで動作する間、自分自身の状態について、および、CPU402内で使用される他のすべての構成要素の状態について気付く/処理することができる。例えば、VMMモードで動作している場合、または、VM/VMxモードにある場合、例えば、CPU402は、どの保留中の割り込みが、各VM412~416およびVMM410のために、例えば、一緒にまたは独立して同時に、最高の優先度(または勝つ割り込み)を有するのかという知識を並列に有する、または、同時に処理する。(例えば、PC408を介して)CPU402は、自分がVMモードにあると決定することができ、それゆえ、例えば、VM1(414)のための新規な割り込み/サービス要求がある場合、VMMモードに切り替える必要なく、新規な割り込み/サービス要求を直接渡すべきか、または、ISRをVM1(414)または実行中の他のVM(例えば、VM2(416))に生成するべきか、という決定をすることができ、さもなければ、VMM410は、VMM呼び出しをVM1(414)に実行中に提供することができる。
VMM動作モードにおいて、VMM410は、VM412~416への割り込みおよびVM412~416の個々の優先度状態を、ICR424、428および432の各々からの情報およびVMM410自身のICR420を用いて制御/管理し、ICR420は、各々、CPU310のそれぞれのICR.CCPN312、ICR.PIPN314およびICR.IE316と同様に、CCPN、PIPNおよびIEを、データを有する構成要素として備えることができ、さらに、PCXI422~434を、上述したPCXI308に類似のデータを有する類似の構成要素として有する。VMMモードは、ハイパーバイザ・モード(または追加の優先度モードに類似のモード)と称することもでき、このモードでは、仮想機械モニタは、実行するただ1つの構成要素であり、ハイパーバイザ・ポートがCPU402において使用可能である場合、VMM410は、そのハイパーバイザ優先度において実行するただ1つとすることができ、例えば、VMが他のVMに割り込み可能か、または、装置100またはCPU402の他のアプリケーション/構成要素によって割り込み可能かを決定する。
図5および図6を一緒に参照すると、図5には、図6に関連して記載されている割り込みシステムに対するCPUインタフェース内のデータの一例が示される。図5は、決定を制御するための(決定が基づく)特定のデータまたは入力を有するCPU402を示し(例えば、拡張したPSW(ePSW)または専用のISR/PCXR(PCXI))、一方、図6は、プロセッサ構成要素408の決定ロジック構成要素602に入力されているデータを示す。
一例では、図1および図4に記載されているバスインタフェース(例えば、140または450)もまた、一例のコンテクストとして機能することができ、そのコンテクストによってCPU402は、例えば、CPU402に関連付けられるかまたはCPU402によって制御されるさまざまな構成要素と相互作用することができる。このように、決定ロジック構成要素602を有するプロセッサ構成要素408を介して決定するためのインタフェースのこの情報またはデータは、1つまたは複数の入力を通じて処理され、VMM410/VMM412~416をどのように制御するか、または、どのように権限を委譲するかを決定することができる。
図5に示されるCPU402は、さまざまなタイプの受信データを有して示され、さまざまなタイプの受信データは、新規に受信した割り込みに関連した仲裁決定のために、例えば、VMモードにおいて直接、または、VMM動作モードにおいてVMM読み出しを介してのいずれかで処理可能である。割り込みシステムに対するCPUインタフェースは、1つまたは複数のVM(例えば、412~416)を、ゲスト・オペレーティングシステムのインスタンス上のアプリケーションのタスクのために制御するように動作することができる。CPU402は、例えば、割り込みシステムに対する1つまたは複数のインタフェース(例えば、ポート/入力/出力端子等)を有することができ、決定構成要素602は、1つまたは複数のVMおよびVMMのための最新の勝つサービス要求についての情報を受信することができる。このように、VMM410および各VM412~416は、異なる優先度方式を格納またはアクセスすることができ、優先度方式は、異なる入力、および、ICRおよび以前のコンテクストレジスタ(PCXRまたはPCXIとして)に関連した各データフィールドにより示されるデータ、異なる優先度閾値等に基づいて、変化することができ、各優先度方式/閾値は、例えば、割り込み待ち時間、割り込み待ちアプリケーション起源、現状、タスク関連、他の資源有効性、または、他の優先度方式要因に関連した1つまたは複数の独立要因に基づくことができる。
一態様/一実施形態では、入力データは、VM410/VMM412~416ごとに専用とすることができ、または、割り込み/サービス要求情報は、(資源のためのサービス要求としてまたは資源のための現在プロセスの割り込みとして)、割り込みシステム500によって時分割多重化されることによって、CPU402に信号送信可能であり、または、割り込み/サービス要求情報は、(例えば、VMMサービス要求情報のための)専用のインタフェースと、(例えば、VM412~416のためのサービス要求情報のための)時分割多重化と、の混合とすることができる。時分割多重化方法は、例えば、専用のインタフェースの混合と比較してわずかに高い割り込みレイテンシを提供することができ、CPU402のためのVMM割り込み構造/構成要素サポートによって、それなしの場合より少ないクロックサイクルを潜在的に生成することができる。
他の態様では、PSWデータ502は、CPU402のPSW404構成要素によって制御可能であり、拡張PSW(ePSW)502とすることができる。CPU PSW404は、CPU402のVMM/VMx状態についてのレジスタビット情報502を提供することができる。これが意味するのは、CPU402ハードウェア(プロセッサ構成要素408)は、VMM410またはVM412~416の任意の1つが現在実行中であるかに関して常に気付くことができ、特に新規な割り込み/サービス要求を受信するとき、VM0(412)、VM1(414)またはVM2(416)のうち、どのVMが実行中であるかの情報を含む、ということである。
ePSW502は、PSW.VMMビット/表示およびPSW.VMビット/表示フィールドならびに他の内容情報またはデータを備えることができる。PSW.VMビットフィールドは、割り当てられた多数の隣接するコンピュータメモリ位置の表示を含むことができ、ビット列、または、例えば、ePSW502に対応する類似のデータ構造を保つ。PSW.VMMおよびPSW.VM情報の変更態様は、例えば、VMM410に制限可能である。これが意味するのは、VMMビットが設定される(または真である)場合にのみ、ソフトウェアまたはアプリケーションは、それを変えることができ、CPU402は、VMMモードで動作しており、実行中のソフトウェア/アプリケーションは、VMM特権を有する、ということである。上述したように、他のVMのための割り込み/サービス要求を行うアプリケーションまたは他のVMに応答して、VMMモードは、VMM410が、ISRのためのVMへのVMM呼び出しを介してVM412~416を管理することができると決定し、CPU402またはCPU402のプロセッサ構成要素408が、決定を直接管理/制御し、受信した割り込み/サービス要求に応答してISRを実施するのではない。ソフトウェアは、VMM特権を有することができ、VMM410にアクセスまたは通信可能であり、例えば、資源(または他のVM)のために要求することができ、または、記載されるように、VMM410のソフトウェアは、VMM動作モードに従って、VM412~416を制御するように動作可能である。
例えば、他のデータまたは関連した入力は、ICR_CTRL(またはICR.CTRL)504によって、VMx412~416、VMM410ごとの専用のICRのために送信可能であり、決定動作または方式の変数を含むことができる。このように、CPU504は、ICR420、424、428および432の複数のインスタンスを、ICR.CTRL406を介して実施/制御することができ、送信データの各インスタンスは、CPU402に対するデータ入力506および5081~508nとすることができる。
例えば、VMM410のための専用の1つのインスタンスは、データ入力としてのICR_VMM506とすることができ、ICR_VMM506は、ビットフィールド、現在の機械(VMM/VMx)の優先度番号(CMPN)および割り込み可能性(IE)を備えることができる。ICR_VMM.PIPNビット/表示フィールドは、保留中の割り込み優先度番号をVMM410に提供する。ICR_VMM.CMPNは、実行中またはサービスされている現在のVMMタスクの優先度を備える。さらに、ICR_VMM.IEは、実行中のVMMタスクが割り込み可能か否かを信号送信する。
ICR_VMMレジスタ506は、PSW502のPSW.VMMビットに割り当て可能である。このように、PSW.VMMビット/表示フィールドは、データをVMM410のICR_VMMレジスタ506で制御、管理または通信することができる。PSWは、(VMMモードにあるのか、VMMモードにないならば、どのVMxがVMモードのために動作しているかについての)CPUハードウェア状態を各ハードウェア状態(VMM、VM0、VM1、・・・等)のために定義する。それに割り当てられる1つのICRレジスタ・フィックスが存在することができる。これは、ICR変更のためのアクセス保護を含み、CPUがVMMモードにある場合、ソフトウェアは、すべてのICRレジスタを変更することができ、CPUが例えばVM1モードにある場合、ソフトウェアは、ICR_VM1のみを変更することができるが、ICR_VMM、ICR_VM0を変更することができず、ICR_VMx/ICR_VMn等も同様である(xまたはnは、例えば、ゼロより大きい正の整数を表すことができる)。
他のデータ・インスタンスは、各サポートされたVM412~416のためにICR_VMx508として専用とすることができる。ただし、x=0~nすなわち5081~508nである。ICR_VMx.PIPNビットフィールド5081~508nは、VMx(例えば、VMx412~416)のための保留中の割り込み優先度番号を示す。ICR_VMx.CMPN5081~508nは、実行中またはビジー状態にある現在のVMx412~416タスクの優先度を示す。ICR_VMx.IE5081~508nは、実行中のVMxタスクが割り込み可能か否かを信号送信する。各ICR_VMxレジスタ5081~508nは、それぞれ、ハードウェアによって1つのPSW.VMビット符号化に割り当て/制御可能であり、PSW.VMxが関連した符号化に設定される場合、または、PSW.VMMが設定される場合、ソフトウェアによって制御可能である。
専用の以前のコンテクスト情報レジスタ(PCXI)は、VMx5121~512nおよびVMM410ごとに構成可能であり、以前のコンテクストレジスタ(PCXR)とも称される。PCXIレジスタ422、426、430および434は、例えば、VMx412~416/VMM410それぞれの以前の/割り込みされたタスクについての情報を含む。例えば、PCXI/PCXR510、5121~512nに関連したこの情報は、以前の割り込み可能(IE)ビット、以前の機械優先度番号および追加の情報またはポインタを備える。以前の割り込みIEビットは、割り込みによって割り込みされる関連付けられた機械の以前の/割り込みされたタスクの状態を提供することができる。以前の機械優先度番号は、この機械の以前の/割り込みされたタスクのレベルを参照することができる。追加情報は、例えば、タスクコンテクスト保存領域へのポインタまたは他のインジケータ、コンテクスト保存動作のタイプ、または、実行または割り込みされた他のメモリ関連のフェッチまたは命令リコールを含むことができる。
CPU402は、さまざまな機械のためのPCXIの複数のインスタンスもまた実施することができる。1つのインスタンスは、VMM(PCXI_VMM/PCXR_VMM)510のために専用とすることができる。PCXI_VMMレジスタ422は、PSW.VMMビット510に割り当て可能であり、他のインスタンスは、各サポートされた仮想機械(PCXI_VMx、x=0~n)5121~512nのために専用とすることができる。各PCXI_VMxレジスタ426、430および434は、CPU402によってPSW.VMビット符号化に割り当て可能である。
各VMxインスタンスは、ハードウェアによって1つのPSW.VMx符号化に割り当て可能である。CPUがVMMモードにある場合、これは、PSW.VMMビット502が設定される(または真である)ことを意味することができるが、以下のことが発生しうる。
1)アプリケーション/ソフトウェアは、ICR_VMM/VMx420、424、428および432、さらにはPCXI_VMM/VMx422、426、430および434構成要素/レジスタを変更することができる。
2)ハードウェア/CPUは、RFI命令をPCXI_VMM510設定として考慮する。
3)例外(割り込み)または例外/割り込みからのリターンは、PCXI_VMM510を変更することができる。
CPU402がVMxモードにある場合、これは、PSW502のPSW.VMMビットが設定されないことを意味することができるが、PSW.VMは、VMx符号化に設定され、以下のことが発生しうる。
1)ハードウェア/CPUは、RFI命令PCXI_VMx設定5121~512nを考慮することができる。
2)アプリケーション/ソフトウェアは、VMx_ICR構成要素/レジスタ5121~512nのみを変更することができる。
3)例外(割り込み)または例外からのリターンは、PCXI_VMx5121~512nの変更を変更/トリガする。
一態様では、専用のICR構成制御レジスタ(ICR_CTRL)406を利用して、常に、CPUハードウェアが、VMM410または各VMxの状態に(PSW.VMMおよびPSW.VMを介して、または、それによって)気付くように保つことができる。CPU402がVMMモードにある間にのみ、ICR_CTRL構成要素は、アプリケーション・ソフトウェアによって変更可能である。さらに、CPU402または他の構成要素は、実行中の間、ICR_CTRL406をロックすることができる。
CPU402は、追加の構成レジスタ(ICR_CTRL)406を提供し、アプリケーション・ソフトウェアは、VMxが実行中の間、どのようにCPUがICR_VMx/ICR_VMM506、5081~508nレジスタにおける新規なPIPNの値に反応するかを定義することができる。追加のレジスタは、ICR_CTRLを含むことができ、ICR_CTRLは、VMM/ハイパーバイザおよび複数のVMに関連したさまざまな割り込み条件に対するさまざまな応答を備え、または、示し、決定ロジック構成要素602に結合される。こうして次に、決定ロジック構成要素602は、変更を実施しないことによって新規なPIPN値に応答することを決定し、実行中またはビジーのVMのために新規なPIPNを利用し、次に、VMモードにある場合、実行中のPIPNに直接転送する、または、新規なPIPNを利用し、VM変化を要求する場合、VMM呼び出しを有するVMに、例えば、VMM410を介して送信する。
さまざまな応答または反応およびどのような条件下であるかは、以下、いくつかの例にて説明するように表すことができる。一例では、VMxが実行中であり(PSW.VMまたはPSW_VMxを介して定義される)、VMM410のための新規な割り込みが割り込みシステムによってCPU402に信号送信され、ICR_VMx.IEが設定され(または真であり)、閾値ICR_VMM.PIPN>ICR_VMx.PIPNが真であり、VMxがVMM割り込みによって割り込み可能に構成される場合、CPU402ハードウェアは、VMMモードに変化するか、さもなければ、VMxは割り込みされない。
他の例では、VMxが実行中であり、VMy(例えば、VMxとは異なるVM)のための新規な割り込みが割り込み/割り込みシステムによってCPU402に信号送信され、ICR_VMx.IEが設定され(または真であり)、ICR_VMy.PIPN>ICR_VMx.PIPNかつICR_VMy.PIPN>ICR_VMy.CMPN(例えば、第1のVMPIPNが他の第1のVMPIPNより大きく、かつ、第2のVMPIPNが他の第2のVMPIPNより大きい)のような閾値が満たされ、VMxがVMy割り込みによって割り込み可能に構成され、第1のVMが割り込みによって割り込みされるように構成されるとき、他の応答は、VMM/ハイパーバイザ動作モードに変化し、VMM/ハイパーバイザを介して第1のVMに割り込みすることを含むことができ、さもなければ、VMxは割り込みされない。
さらなる例では、VMxが実行中であり、VMxのための新規な割り込みが割り込み/割り込みシステムによってCPU402に信号送信され、ICR_VMx.IEが設定され(または真であり)、閾値ICR_VMx.PIPN>ICR_VMx.PIPNが満たされる場合、CPUがVMM状態に変化するか、または、VMxモードにとどまり、現在のタスクに割り込みするか、が構成可能である。
他の実施形態では、CPU402は、1つの汎用レジスタまたはVMxごとの1つのレジスタを導入することができ、VMxごとの1つのレジスタは、割り込み優先度レベルを定義し、VMx ICR_VMx.IEビットが設定される場合、VMxは割り込み可能であり、ICR_VMy.PIPN>ICR_VMx.PIPNを満たす少なくとも1つのVMyが存在し、VMxは、他のVMによって割り込み可能である。このオプションの利点は、VMxタスクがICR_VMx.PIPN>ICR_VMx.CCPNを満たすVMxにマップされる任意の割り込みによって割り込み可能であり、VMxに他のVMyによって割り込みする独立した優先度レベル/閾値が実行可能なことである。利点は、各VMのために、1つのレベルが、VMによって(CMPNを介して)実行されるアプリケーション・ソフトウェアによって定義され、第2のレベルが、このVMのためにVMMによって定義可能であり、より高い優先度サービス要求を有する他のVMがVMxに割り込み可能であることである。
このように、決定ロジック構成要素602は、現在および以前の異なる状態ならびに割り込み呼び出しのためのCPU402の各仮想構成要素の優先度番号付けを考慮するように動作することができ、所定のVMが実行しているか否か、例えば、状態関数と同様に、資源を仲裁するように動作することができる。このように、決定ロジック構成要素602の第1のステージは、各VMのための最高の割り込みを発見するために、VMのローカル仲裁を含むことができ、次に、第2のステージは、どのVMが現在アクティブなのか、異なるVMからのすべての要求を考慮し、このデータに基づいて、現在のVMに転送すべきか、または、他のVMに割り込みするべきか、を決定することができる。
本願明細書では、方法が一連のステップまたは事象として記載および図示されているが、この種のステップまたは事象の順番は、図示例に限定して解釈されるものではないことを認識されたい。例えば、いくつかのステップは、異なる順番でおよび/または他のステップまたは事象と同時に、本願明細書に図示および/または記載されたものから離れて発生してもよい。さらに、すべての図示のステップが、本願明細書に記載の1つまたは複数の態様または実施形態を実施するのに必要でなくてもよい。さらに、本願明細書において表されるステップの1つまたは複数は、1つまたは複数の別々のステップおよび/または段階において実行されてもよい。
図7は、CPUのためのハイパーバイザ/VMMおよびVMの割り込みサービス要求制御のためのプロセスフロー700である。方法は、710において、1つまたは複数のプロセッサを介して、VMM/ハイパーバイザまたは複数のVMの1つまたは複数に対応する割り込み要求を受信するステップで開始し、複数のVMは、ゲスト・オペレーティングシステムの1つまたは複数のVMアプリケーションを1つまたは複数のタスクのために実行するように構成可能である。
720において、一組の所定の基準に基づいて、VMM/ハイパーバイザおよび複数のVMに対する割り込み要求を認めるべきかの決定を生成することができる。
730において、決定に基づいて、割り込み要求を通信することができる、または、ISRを生成することができる。
他の態様では、VMM/ハイパーバイザおよびVMにそれぞれ対応するCPU ICUおよびPCXIレジスタからの情報に基づいて、決定は、VMM/ハイパーバイザおよび複数のVMに対応する割り込み優先度方式の現在の状態からなるものとすることもできる。
プロセスフロー700の動作は、VMM/ハイパーバイザ・モードの代わりにVMモードにあるCPUに応答して、バスを介して、割り込みをVMに、VMが同時に実行中の間、VMM/ハイパーバイザからのVMM呼び出しなしで直接転送するステップをさらに含むことができる。
第1のVMが、VMM/ハイパーバイザによって構成可能な条件(または定義された応答/閾値)に基づいて、複数のVMの第2のVMからの割り込みとして受信されるサービス要求によって割り込みされるように構成されるかについての決定を行うこともできる。これらの条件または反応は、優先度閾値を含むことができ、優先度閾値は、VMM/ハイパーバイザおよび複数のVMにそれぞれ関連付けられた保留中の割り込み番号と、VMM/ハイパーバイザおよび複数のVMにそれぞれ関連付けられた現在の中央演算処理装置(CPU)の優先度番号と、VMモードで動作するプロセッサ構成要素に応答して、第1のVMが、第2のVMにマップされる割り込みによって直接割り込み可能かを決定するための1つまたは複数の追加の優先度閾値と、を備える。
例は、特徴事項、例えば、方法、方法のステップまたはブロックを実行するための手段、命令を含む少なくとも1つの機械可読媒体を含んでもよく、命令は、機械によって実行されるとき、本願明細書に記載されている実施形態および例に従って複数の通信技術を用いた同時通信のために、機械に方法のステップまたは装置またはシステムのステップを実行させる。
例1は、プロセッサ構成要素を備えるシステムであって、プロセッサ構成要素は、複数の仮想機械(VM)と、複数のVMを制御するように構成される仮想機械モニタ(VMM)/ハイパーバイザと、を備え、プロセッサは、VMM/ハイパーバイザまたは複数のVMの1つまたは複数に対応する複数の割り込み要求を受信し、一組の所定の基準に基づいて、VMM/ハイパーバイザおよび複数のVMに対する複数の割り込み要求の割り込み要求を認めるべきかを決定する、ように構成される。
例2は、例1の特徴事項を含み、VMM/ハイパーバイザおよび複数の仮想機械(VM)は、それぞれ、割り込み制御レジスタ(ICR)と、以前のコンテクストおよび実行情報(PCXI)レジスタと、を備え、プロセッサ構成要素は、一組の所定の基準の一部として、VMM/ハイパーバイザおよび複数のVMにそれぞれ対応する割り込み優先度方式の現状を決定するようにさらに構成される。
例3は、例1~2のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、一組の所定の基準は、現在のタスク優先度、保留中の割り込み優先度、または、現状に関連付けられた割り込み可能性の1つまたは複数を備える。
例4は、例1~3のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、プロセッサ構成要素は、拡張プロセッサ状態語(ePSW)を備えるプロセッサ状態レジスタと、割り込み制御レジスタ(ICR)構成制御(ICR CTRL)を備える追加のレジスタと、をさらに備え、割り込み制御レジスタ(ICR)構成制御(ICR CTRL)は、VMM/ハイパーバイザおよび複数のVMに関連したさまざまな割り込み条件に対する複数の応答を備える。
例5は、例1~4のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、複数の割り込み要求は、1つまたは複数のVMアプリケーションに対応する複数のVMサービス要求を備える。
例6は、例1~5のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、プロセッサ構成要素は、複数の割り込み要求の1つまたは複数の割り込み要求を複数のVMの1つのVMに、1つのVMが同時に実行中の間、直接転送するようにさらに構成され、1つのVMは、VMM/ハイパーバイザからのVMM呼び出しなしで、1つまたは複数の割り込み要求を受信するようにさらに構成される。
例7は、例1~6のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、プロセッサ構成要素は、決定ロジック構成要素をさらに備え、決定ロジック構成要素は、複数のVMの第1のVMが、VMM/ハイパーバイザによって構成される1つまたは複数の条件に基づいて、複数のVMの第2のVMから受信されるサービス要求によって割り込みされるように構成されるかを決定して構成される。
例8は、例1~7のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、VMM/ハイパーバイザは、1つまたは複数の条件を決定ロジック構成要素のために定義するようにさらに構成され、1つまたは複数の条件は、VMM/ハイパーバイザおよび複数のVMにそれぞれ関連付けられた保留中の割り込み番号と、VMM/ハイパーバイザおよび複数のVMにそれぞれ関連付けられた現在の中央演算処理装置(CPU)の優先度番号と、VMモードで動作するプロセッサ構成要素に応答して、第1のVMが第2のVMにマップされる割り込みによって直接割り込み可能かを決定するための1つまたは複数の追加の優先度閾値と、を備える優先度閾値を備える。
例9は、プロセッサ構成要素を備える装置であって、プロセッサ構成要素は、動作を実行する命令を含むメモリと、複数のインタフェースと、バスと、を備え、バスは、メモリおよび複数のインタフェースを、複数の仮想機械(VM)および仮想機械モニタ(VMM)/ハイパーバイザに通信可能に結合し、複数のVMおよびVMM/ハイパーバイザの複数の割り込み要求に関連したデータを、プロセッサ構成要素の決定ロジック構成要素に通信する、ように構成され、プロセッサ構成要素は、一組の所定の基準に基づいて、VMM/ハイパーバイザおよび複数のVMに対するまたはVMM/ハイパーバイザおよび複数のVMからの複数の割り込み要求の割り込み要求を認めるべきかを決定するように構成される。
例10は、例9のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、一組の所定の基準は、VMモードおよびVMM/ハイパーバイザ・モードを備える一組のモードからのプロセッサ構成要素の動作モードを備え、プロセッサ構成要素は、VMモードにあることに応答して、割り込み要求を直接認め、複数のVMの1つのVMで割り込みサービスルーチン(ISR)をトリガするようにさらに構成される。
例11は、例9~10のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、複数の割り込み要求は、VMMおよび複数のVMの異なる割り込み優先度方式から生じる複数の勝つサービス要求を備え、プロセッサ構成要素は、ISRを、複数のVMの1つのVMで、割り込み要求に応答して、勝つサービス要求として、複数のVMによって実行されているアプリケーションの第1の優先度レベルおよびVMM/ハイパーバイザによって定義される複数のVMの第2の優先度レベルに基づいてトリガするようにさらに構成される。
例12は、例9~11のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、プロセッサ状態レジスタおよび追加のレジスタをさらに備え、プロセッサ状態レジスタは、拡張プロセッサ状態語(ePSW)を備え、決定ロジック構成要素に結合され、ePSWを決定ロジック構成要素に提供するように構成され、追加のレジスタは、VMM/ハイパーバイザおよび複数のVMに関連したさまざまな割り込み条件に対する複数の応答を備える割り込み制御レジスタ(ICR)構成制御(ICR CTRL)を備え、決定ロジック構成要素に結合され、ICR CTRLを決定ロジック構成要素に提供するように構成される。
例13は、例9~12のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、ePSWは、VMM/ハイパーバイザおよび複数のVMの1つまたは複数のVMがビジー状態にあるかを示し、ビジー状態にある1つまたは複数のVMを識別する。
例14は、例9~13のいずれかの特徴事項を含み、決定ロジックは、複数のVMの第1のVMxが、さまざまな割り込み条件に基づいて、複数のVMの第2のVMyから受信されるサービス要求によって割り込みされるように構成されるかを決定するように構成され、優先度閾値との比較に基づいて、さまざまな条件に対する応答を決定するように構成される。
例15は、例9~14のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、優先度閾値は、VMM/ハイパーバイザおよび複数のVMにそれぞれ関連付けられた保留中の割り込み番号と、VMM/ハイパーバイザおよび複数のVMにそれぞれ関連付けられた現在の中央演算処理装置(CPU)の優先度番号と、VMモードまたはVMM/ハイパーバイザ動作モードで動作するプロセッサ構成要素に応答して、第1のVMが、第2のVMにマップされる割り込みによって直接割り込み可能かを決定するための1つまたは複数の追加の優先度閾値と、を備える。
例16は、1つまたは複数のプロセッサを介して、VMM/ハイパーバイザまたは複数のVMの1つまたは複数に対応する割り込みを受信するステップと、1つまたは複数のプロセッサを介して、一組の所定の基準に基づいて、VMM/ハイパーバイザおよび複数のVMに対する割り込みを認めるべきかの決定を生成するステップと、決定に基づいて、1つまたは複数のプロセッサ、VMM/ハイパーバイザおよび複数のVMに通信可能に結合されるバスを介して、割り込みを通信するステップと、を含む方法である。
例17は、例16の特徴事項を含み、動作は、VMM/ハイパーバイザおよび複数の仮想機械(VM)の中央演算処理装置(CPU)割り込み制御レジスタ(ICU)と、以前のコンテクストおよび実行情報(PCXI)レジスタと、からの情報に基づいて、VMM/ハイパーバイザおよび複数のVMに対応する割り込み優先度方式の現状を決定するステップをさらに含む。
例18は、例16~17のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、動作は、VMM/ハイパーバイザ・モードの代わりにVMモードで動作することに応答して、バスを介して、割り込みを複数のVMの1つのVMに、1つのVMが同時に実行中の間、VMM/ハイパーバイザからのVMM呼び出しなしで直接転送するステップをさらに含む。
例19は、例16~18のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、動作は、1つまたは複数のプロセッサを介して、複数のVMの第1のVMが、VMM/ハイパーバイザによって構成される1つまたは複数の条件に基づいて、複数のVMの第2のVMからの割り込みとして受信されるサービス要求によって割り込みされるように構成されるかを決定するステップをさらに含む。
例20は、例16~19のいずれかの特徴事項を含み、任意のオプション要素を含み、または、省略し、動作は、優先度閾値を含む1つまたは複数の条件を定義するステップをさらに含み、優先度閾値は、VMM/ハイパーバイザおよび複数のVMにそれぞれ関連付けられた保留中の割り込み番号と、VMM/ハイパーバイザおよび複数のVMにそれぞれ関連付けられた現在の中央演算処理装置(CPU)の優先度番号と、VMモードで動作するプロセッサ構成要素に応答して、第1のVMが、第2のVMにマップされる割り込みによって直接割り込み可能かを決定するための1つまたは複数の追加の優先度閾値と、を備える。
アプリケーション(例えば、プログラムモジュール)は、ルーチン、プログラム、構成要素、データ構造等、特定のタスクを実行するもの、または、特定の抽象データ型を実施するものを含むことができる。さらに、当業者は、開示される動作が他のシステム構成によって実行可能であることを理解するものであり、他のシステム構成は、シングルプロセッサまたはマルチプロセッサ・システム、ミニコンピュータ、メインフレームコンピュータならびにパーソナルコンピュータ、携帯型コンピューティング装置、マイクロプロセッサベースまたはプログラム可能な家電等を含み、各々は、1つまたは複数の関連付けられたモバイルまたはパーソナルコンピューティング装置に動作可能に結合可能である。
コンピューティング装置は、典型的には、さまざまなコンピュータ可読媒体を含むことができる。コンピュータ可読媒体は、コンピュータによってアクセス可能な任意の利用できる媒体とすることができ、揮発性および不揮発性媒体ならびに取り外し可能および取り外し不可能な媒体を含む。例えば、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を備えることができるが、これらに限定されるものではない。コンピュータ記憶媒体は、情報、例えば、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータの記憶のための任意の方法または技術で実施される揮発性および不揮発性ならびに取り外し可能および取り外し不可能な媒体を含む。コンピュータ記憶媒体(例えば、1つまたは複数のデータストア)は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)または他の光学的ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置または所望の情報を格納するのに使用可能で、コンピュータによってアクセス可能な任意の他の媒体を含むことができるが、これらに限定されるものではない。
通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュールまたは変調データ信号(例えば、搬送波または他の搬送機構)における他のデータを実施し、任意の情報配信媒体を含む。「変調データ信号」という用語は、信号内の情報を符号化するように設定または変化された信号特性の1つまたは複数を有する信号を意味する。例えば、通信媒体は、有線媒体(例えば、有線ネットワークまたは直接有線接続)および無線媒体(例えば、音響、RF、赤外線および他の無線媒体)を含むが、これらに限定されるものではない。上記の任意の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれなければならない。
本願明細書に記載されている態様がハードウェア、ソフトウェア、ファームウェアまたはこれらの任意の組み合わせによって実施可能であることを理解すべきである。ソフトウェアで実施されるとき、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に格納または送信可能である。コンピュータ可読媒体は、コンピュータ記憶媒体と、コンピュータプログラムをある場所から他の場所に転送するのを容易にする任意の媒体を含む通信媒体と、を含む。記憶媒体は、汎用または専用コンピュータによってアクセス可能な任意の利用できる媒体でもよい。例えば、この種のコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光学的ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶装置を備えることができる、または、所望のプログラムコード手段を命令またはデータ構造の形で実行または格納するのに使用可能かつ汎用もしくは専用コンピュータまたは汎用もしくは専用プロセッサによってアクセス可能な任意の他の媒体を備えることができるが、これらに限定されるものではない。また、任意の接続は、コンピュータ可読媒体において適切に用いられる。例えば、ソフトウェアがウェブサイト、サーバまたは他のリモートソースから、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)または無線技術、例えば、赤外線、無線およびマイクロ波を用いて送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSLまたは無線技術、例えば、赤外線、無線およびマイクロ波は、媒体の定義内に含まれる。本願明細書で用いられるディスク(disk/disc)は、コンパクトディスク(CD)、レーザーディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスクおよびブルーレイディスクを含み、ディスク(disk)は、通常データを磁気的に再生する場合に用いられ、一方、ディスク(disc)は、レーザーで光学的にデータを再生する場合に用いられる。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれなければならない。
本願明細書に開示される態様に関連して記載されているさまざまな図示のロジック、ロジックブロック、モジュールおよび回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラム可能なロジック装置、別々のゲートまたはトランジスタロジック、別々のハードウェア構成要素または本願明細書に記載されている機能を実行するように設計されたこれらの任意の組み合わせを用いて実施または実行されてもよい。汎用プロセッサは、マイクロプロセッサでもよいが、代替的に、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラまたは状態機械でもよい。プロセッサは、コンピューティング装置の組み合わせ、例えば、DSPおよびマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアに関連する1つまたは複数のマイクロプロセッサまたは任意の他のこの種の構成として実施されてもよい。さらに、少なくとも1つのプロセッサは、本願明細書に記載されているステップおよび/または動作の1つまたは複数を実行するように動作可能な1つまたは複数のモジュールを備えてもよい。
ソフトウェア実施のために、本願明細書に記載されている技術は、本願明細書に記載されている機能を実行するモジュール(例えば、手順、機能等)で実施されてもよい。ソフトウェアコードは、メモリユニット内に格納され、プロセッサによって実行されてもよい。メモリユニットは、プロセッサ内で実施されてもよいし、または、プロセッサの外部で実施されてもよく、その場合には、メモリユニットは、周知のさまざまな手段を介してプロセッサに通信可能に結合可能である。さらに、少なくとも1つのプロセッサは、本願明細書に記載されている機能を実行するように動作可能な1つまたは複数のモジュールを含んでもよい。
本願明細書に記載されている技術は、さまざまな無線通信システム、例えば、CDMA、TDMA、FDMA、OFDMA、SC-FDMAおよび他のシステムのために用いられてもよい。「システム」および「ネットワーク」という用語は、しばしば区別せずに用いられる。CDMAシステムは、無線技術、例えば、ユニバーサル地上波無線アクセス(UTRA)、CDMA2000等を実施することができる。UTRAは、広帯域CDMA(W-CDMA)およびCDMAの他の異型を含む。さらに、CDMA2000は、IS-2000、IS-95およびIS-856標準をカバーする。TDMAシステムは、無線技術、例えば、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM)を実施してもよい。OFDMAシステムは、無線技術、例えば、進化型UTRA(E-UTRA)、ウルトラ・モバイル・ブロードバンド(UMB)、IEEE802.11(Wi-Fi)、IEEE802.16(WiMAX)、IEEE802.20、フラッシュOFDM等を実施してもよい。UTRAおよびEUTRAは、ユニバーサル・モバイル・テレコミュニケーション・システム(UMTS)の一部である。3GPPロング・ターム・エボリューション(LTE)は、EUTRAを使用するUMTSのリリースであり、ダウンリンク上のOFDMAおよびアップリンク上のSC-FDMAを使用する。UTRA、EUTRA、UMTS、LTEおよびGSMは、「3rd Generation Partnership Project」(3GPP)という名称の組織からの文書に記載されている。さらに、CDMA2000およびUMBは、「3rd Generation Partnership Project 2」(3GPP2)という名称の組織からの文書に記載されている。さらに、この種の無線通信システムは、しばしば対になってない無認可のスペクトルを用いるピア・ツー・ピア(例えば、携帯電話間)アドホック・ネットワークシステム、802.xx無線LAN、ブルートゥース、および、任意の短距離または長距離の無線通信技術、例えば、30GHzから300GHzの範囲のミリ波帯域を追加で含んでもよい。
単一キャリア変調および周波数領域等化を利用する単一キャリア周波数分割多元接続(SC-FDMA)は、開示された態様によって利用可能な技術である。SC-FDMAは、OFDMAシステムに類似の性能および基本的に類似の全体の複雑性を有する。SC-FDMA信号は、その固有の単一キャリア構造のため、より低いピーク対平均電力比(PAPR)を有する。SC-FDMAは、より低いPAPRが送信電力効率に関して移動端末に利益を与えることができるアップリンク通信において利用可能である。
さらに、本願明細書に記載されているさまざまな態様または特徴は、標準プログラミングおよび/または工学技術を用いて、方法、装置または製品として実施されてもよい。本願明細書で用いられる「製品」という用語は、任意のコンピュータ可読装置、キャリアまたは媒体からアクセス可能なコンピュータプログラムを包含することを意図する。例えば、コンピュータ可読媒体は、磁気記憶装置(例えば、ハードディスク、フロッピーディスク、磁気ストリップ等)、光ディスク(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)等)、スマートカードおよびフラッシュメモリ装置(例えば、EPROM、カードスティック、キードライブ等)を含むことができるが、これらに限定されるものではない。さらに、本願明細書に記載されているさまざまな記憶媒体は、1つまたは複数の装置および/または情報を記憶するための他の機械可読媒体を表すことができる。「機械可読媒体」という用語は、命令および/またはデータを格納し、含み、および/または、伝えることができる無線チャネルおよびさまざまな他の媒体を含むことができるが、これらに限定されるものではない。さらに、コンピュータプログラム製品は、コンピュータに本願明細書に記載されている機能を実行させるように動作可能な1つまたは複数の命令またはコードを有するコンピュータ可読媒体を含んでもよい。
さらに、本願明細書に開示される態様に関連して記載されている方法またはアルゴリズムのステップおよび/または動作は、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、または、これらの組み合わせで実施されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROMまたは周知の任意の他の形態の記憶媒体内に存在してもよい。例示的な記憶媒体は、プロセッサに結合されてもよく、その結果、プロセッサは、情報を記憶媒体から読み出すことができ、情報を記憶媒体に書き込むことができる。代替的に、記憶媒体は、プロセッサに統合されてもよい。さらに、いくつかの態様では、プロセッサおよび記憶媒体は、ASIC内に存在してもよい。さらに、ASICは、ユーザ端末内に存在してもよい。代替的に、プロセッサおよび記憶媒体は、別々の構成要素としてユーザ端末内に存在してもよい。さらに、いくつかの態様では、方法またはアルゴリズムのステップおよび/または動作は、コードおよび/または命令の1つまたは任意の組み合わせまたは組として、コンピュータプログラム製品に組み込まれてもよい機械可読媒体および/またはコンピュータ可読媒体上に存在してもよい。
本件開示の図示の実施形態の上述した記載は、要約に記載されていることを含み、包括的であることを意図しないし、または、開示された実施形態を開示された正確な形に制限することを意図しない。特定の実施形態および例が本願明細書において説明のために記載されているが、当業者が認識できるように、さまざまな変更が、この種の実施形態および例の範囲内にあるとみなすことができる。
この点に関しては、開示された特徴事項は、各種実施形態および対応する図面に関連して記載されてきたが、該当する場合、他の類似の実施形態が使用可能である、または、記載された実施形態に変更および追加を行い、開示された特徴事項と同一、類似、代替または代わりの機能を、そこから逸脱することなく実行できることを理解されたい。それゆえ、開示された特徴事項は、本願明細書に記載されているただ1つの実施形態に限定されるべきではなく、むしろ、以下に添付の請求の範囲に従って幅および範囲において解釈されるべきである。
特に、上述した構成要素または構造(アセンブリ、装置、回路、システム等)によって実行されるさまざまな機能に関して、この種の構成要素を記載するために用いられる用語(「手段」の参照を含む)は、特に明記しない限り、本発明の例示的な実施態様に図示される本願明細書における機能を実行する開示された構造に構造的に等しくないとしても、記載されている構成要素の特定の機能を実行する任意の構成要素または構造(例えば、機能的に等価である)に対応することを意図する。さらに、特定の特徴がいくつかの実施態様のただ1つに関して開示されてきたかもしれないが、この種の特徴は、要望されるように、および、任意の所定のまたは特定の用途に有利であるように、他の実施態様の1つまたは複数の他の特徴と組み合わせてもよい。