(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-21
(45)【発行日】2023-08-29
(54)【発明の名称】動的仮想システム・オン・チップのための方法および装置
(51)【国際特許分類】
G06F 9/50 20060101AFI20230822BHJP
G06F 9/455 20180101ALI20230822BHJP
【FI】
G06F9/50 150Z
G06F9/455 150
(21)【出願番号】P 2022094870
(22)【出願日】2022-06-13
(62)【分割の表示】P 2017083643の分割
【原出願日】2017-04-20
【審査請求日】2022-07-07
(32)【優先日】2016-04-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520078248
【氏名又は名称】マーベル アジア ピーティーイー、リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ゴイアル・ラジャン
(72)【発明者】
【氏名】フサイン・ムハンマド・ラジブ
(72)【発明者】
【氏名】ケスラー・リチャード・イー
【審査官】三坂 敏夫
(56)【参考文献】
【文献】米国特許出願公開第2011/0271277(US,A1)
【文献】米国特許出願公開第2016/0092677(US,A1)
【文献】特開2013-257789(JP,A)
【文献】特表2015-529918(JP,A)
【文献】特表2015-510201(JP,A)
【文献】国際公開第2015/178032(WO,A1)
【文献】特表2016-509412(JP,A)
【文献】特開2015-204614(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
(57)【特許請求の範囲】
【請求項1】
複数の仮想システム・オン・チップであって、当該複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように構成された、複数の仮想システム・オン・チップと、
少なくとも1つの事象であって、プロセッサ装置の外部で生じる外部事象を含む少なくとも1つの事象に応答して前記リソースアライメントを動的に修正するように構成されたリソースアライン部とを備え、前記外部事象がルートフラップを含む事象において、前記複数の仮想システム・オン・チップの、パケットアプリケーションをサポートする仮想システム・オン・チップからリソースを削除することにより、前記リソースアライン部が前記リソースアライメントを修正するように構成されたプロセッサ装置。
【請求項2】
請求項1に記載のプロセッサ装置において、前記リソースアライン部が、さらに、前記少なくとも1つの事象に応答して当該プロセッサ装置のスループットを達成するために、前記リソースアライメントを動的に修正するように構成されている、プロセッサ装置。
【請求項3】
請求項1に記載のプロセッサ装置において、さらに、
前記リソースアライン部に動作可能に結合された設定部であって、前記リソースアライメントに対する少なくとも1つの修正に応答して、修正済の前記リソースアライメントを動的に適用するように構成された設定部を備えた、プロセッサ装置。
【請求項4】
請求項3に記載のプロセッサ装置において、前記設定部が、さらに、前記リソースアライン部が前記リソースアライメントを修正したことを検出するように構成されている、プロセッサ装置。
【請求項5】
請求項3に記載のプロセッサ装置において、前記設定部が、さらに、前記リソースアライン部が前記リソースアライメントを修正したことを示す通信を前記リソースアライン部から受信するように構成されている、プロセッサ装置。
【請求項6】
請求項3に記載のプロセッサ装置において、修正済の前記リソースアライメントを動的に適用するために、前記設定部が、修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新するように構成されている、プロセッサ装置。
【請求項7】
請求項3に記載のプロセッサ装置において、前記少なくとも1つの修正が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含み、
前記設定部が、さらに、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づいて、または、当該使用に適用された予め決められた時間値の期限切れに基づいて、前記少なくとも1つの修正を適用するように構成されている、
プロセッサ装置。
【請求項8】
請求項1に記載のプロセッサ装置において、さらに、
前記リソースアライン部に動作可能に結合された監視部を備え、
前記監視部が、前記少なくとも1つの事象の少なくとも1つのインスタンスを監視するように構成され、かつ、前記リソースアライメントを動的に修正するように前記リソースアライン部をトリガするために、前記少なくとも1つの事象の前記少なくとも1つのインスタンスを前記リソースアライン部に伝達するように構成されている、プロセッサ装置。
【請求項9】
請求項8に記載のプロセッサ装置において、前記少なくとも1つの事象の前記少なくとも1つのインスタンスを監視するために、前記監視部が、前記複数のリソースのうちの少なくとも1つのリソースの状態、または前記複数の仮想システム・オン・チップの少なくとも1つの仮想システム・オン・チップ状態を監視するように構成されている、
プロセッサ装置。
【請求項10】
請求項9に記載のプロセッサ装置において、前記複数のリソースのうちの前記少なくとも1つのリソースの前記状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、プロセッサ装置。
【請求項11】
請求項9に記載のプロセッサ装置において、前記複数の仮想システム・オン・チップの前記少なくとも1つの仮想システム・オン・チップ状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、プロセッサ装置。
【請求項12】
請求項1に記載のプロセッサ装置において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正するために、前記リソースアライン部が、さらに、前記少なくとも1つの事象に応答して前記複数のマッピングのうちの少なくとも1つのマッピングを動的に修正するように構成されている、プロセッサ装置。
【請求項13】
請求項12に記載のプロセッサ装置において、
前記少なくとも1つのマッピングが、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインし、
前記少なくとも1つのマッピングを動的に修正することが、前記所与の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも1つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも1つの他の仮想システム・オン・チップに前記所与のリソースをアラインすることを含む、プロセッサ装置。
【請求項14】
請求項1に記載のプロセッサ装置において、前記リソースアライメントを動的に修正するために、前記リソースアライン部が、さらに、少なくとも1つのマッピングを前記リソースアライメントに追加するように構成され、前記少なくとも1つのマッピングが、前記複数の仮想システム・オン・チップのうちの1つの仮想システム・オン・チップに、前記複数のリソースのうちの1つのリソースをアラインする、プロセッサ装置。
【請求項15】
請求項1に記載のプロセッサ装置において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正するために、前記複数のマッピングから少なくとも1つのマッピングを削除することを含む、プロセッサ装置。
【請求項16】
請求項1に記載のプロセッサ装置において、前記リソースアライメントが、前記複数の仮想システム・オン・チップのうちの2つ以上の仮想システム・オン・チップが前記複数のリソースのうちの所与のリソースを共有できるようにする、プロセッサ装置。
【請求項17】
請求項16に記載のプロセッサ装置において、前記複数の仮想システム・オン・チップのうちの前記2つ以上の仮想システム・オン・チップそれぞれが、前記所与のリソースに関して仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用するように構成されている、プロセッサ装置。
【請求項18】
請求項1に記載のプロセッサ装置において、前記リソースアライメントが、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが所与のリソースを独占的に使用できるようにする、プロセッサ装置。
【請求項19】
請求項1に記載のプロセッサ装置において、前記少なくとも1つの事象が、時刻に基づく事前スケジュールされた事象を含む、プロセッサ装置。
【請求項20】
請求項1に記載のプロセッサ装置において、前記少なくとも1つの事象が、前記複数のリソースのうちの所与のリソースの誤動作を示す故障事象を含む、プロセッサ装置。
【請求項21】
請求項1に記載のプロセッサ装置において、前記少なくとも1つの事象が、前記複数のリソースのうちの少なくとも1つのリソースがオーバサブスクリプションであることを示すか、または、前記複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム・オン・チップがオーバサブスクリプションであることを示す、オーバサブスクリプション事象を含む、プロセッサ装置。
【請求項22】
請求項1に記載のプロセッサ装置において、前記少なくとも1つの事象が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、前記複数のリソースのうちの所与のリソースが、前記所与の仮想システム・オン・チップによる使用率であって、閾値未満である使用率を有することを示すアイドル事象を含む、プロセッサ装置。
【請求項23】
請求項1に記載のプロセッサ装置において、前記リソースアライメントがスループットの損失を防止するように動的に修正され、前記スループットの損失は、防止されなければ前記少なくとも1つの事象によってもたらされる、プロセッサ装置。
【請求項24】
プロセッサ装置の複数の仮想システム・オン・チップを設定する工程であって、前記複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように設定する工程と、
少なくとも1つの事象であって前記プロセッサ装置の外部で生じる外部事象を含む少なくとも1つの事象に応答して前記リソースアライメントを動的に修正する工程であって、前記リソースアライメントの修正は、前記外部事象がルートフラップを含む事象において、前記複数の仮想システム・オン・チップの、パケットアプリケーションをサポートする仮想システム・オン・チップからリソースを削除することを含む、修正する工程とを備えた方法。
【請求項25】
請求項24に記載の方法において、前記少なくとも1つの事象に応答して前記リソースアライメントを動的に修正する前記工程が、前記少なくとも1つの事象に応答して前記プロセッサ装置のスループットを達成する、方法。
【請求項26】
請求項24に記載の方法において、さらに、
前記リソースアライメントに対する少なくとも1つの修正に応答して、修正済の前記リソースアライメントを動的に適用する工程を備えた、方法。
【請求項27】
請求項
26に記載の方法において、さらに、
前記リソースアライメントに対する前記少なくとも1つの修正を検出する工程を備えた、方法。
【請求項28】
請求項
26に記載の方法において、さらに、
前記リソースアライメントに対する前記少なくとも1つの修正の通信を受信する工程を備えた、方法。
【請求項29】
請求項
26に記載の方法において、さらに、
修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新する工程を備えた、方法。
【請求項30】
請求項
26に記載の方法において、前記少なくとも1つの修正が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含み、前記少なくとも1つの修正を適用することが、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づくか、または、当該使用に適用された予め決められた時間値の期限切れに基づく、方法。
【請求項31】
請求項24に記載の方法において、さらに、
前記少なくとも1つの事象の少なくとも1つのインスタンスを監視する工程と、
前記リソースアライメントの動的修正をトリガするために、前記少なくとも1つの事象の前記少なくとも1つのインスタンスを伝達する工程とを備えた、方法。
【請求項32】
請求項31に記載の方法において、前記監視する工程が、前記複数のリソースのうちの少なくとも1つのリソースの状態、または、前記複数の仮想システム・オン・チップの少なくとも1つの仮想システム・オン・チップ状態を監視する工程を含む、方法。
【請求項33】
請求項32に記載の方法において、前記複数のリソースのうちの前記少なくとも1つのリソースの前記状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、方法。
【請求項34】
請求項32に記載の方法において、前記複数の仮想システム・オン・チップの前記少なくとも1つの仮想システム・オン・チップ状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、方法。
【請求項35】
請求項24に記載の方法において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正する前記工程が、前記少なくとも1つの事象に応答して前記複数のマッピングのうちの少なくとも1つのマッピングを動的に修正する工程を含む、方法。
【請求項36】
請求項35に記載の方法において、
前記少なくとも1つのマッピングが、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインし、
前記少なくとも1つのマッピングを動的に修正する前記工程が、前記所与の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも1つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも1つの他の仮想システム・オン・チップに前記所与のリソースをアラインする工程を含む、方法。
【請求項37】
請求項24に記載の方法において、前記リソースアライメントを動的に修正する前記工程が、少なくとも1つのマッピングを前記リソースアライメントに追加する工程を含み、前記少なくとも1つのマッピングが、前記複数の仮想システム・オン・チップのうちの1つの仮想システム・オン・チップに、前記複数のリソースのうちの1つのリソースをアラインする、方法。
【請求項38】
請求項24に記載の方法において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正する前記工程が、前記複数のマッピングから少なくとも1つのマッピングを削除する工程を含む、方法。
【請求項39】
請求項24に記載の方法において、さらに、
前記複数の仮想システム・オン・チップのうちの2つ以上の仮想システム・オン・チップが、前記リソースアライメントに基づいて、前記複数のリソースのうちの所与のリソースを共有できるようにする工程を備えた、方法。
【請求項40】
請求項39に記載の方法において、
前記2つ以上の仮想システム・オン・チップが前記所与のリソースを共有できるようにする前記工程が、前記所与のリソースに関して仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用するように前記2つ以上の仮想システム・オン・チップを構成する工程を含む、方法。
【請求項41】
請求項24に記載の方法において、さらに、
前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが、前記リソースアライメントに基づいて、所与のリソースを独占的に使用できるようにする工程を備えた、方法。
【請求項42】
請求項24に記載の方法において、前記少なくとも1つの事象が、時刻に基づく事前スケジュールされた事象を含む、方法。
【請求項43】
請求項24に記載の方法において、前記少なくとも1つの事象が、前記複数のリソースのうちの所与のリソースの誤動作を示す故障事象を含む、方法。
【請求項44】
請求項24に記載の方法において、前記少なくとも1つの事象が、前記複数のリソースのうちの少なくとも1つのリソースがオーバサブスクリプションであることを示すか、または、前記複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム・オン・チップがオーバサブスクリプションであることを示す、オーバサブスクリプション事象を含む、方法。
【請求項45】
請求項24に記載の方法において、前記少なくとも1つの事象が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、前記複数のリソースのうちの所与のリソースが、前記所与の仮想システム・オン・チップによる使用率であって、閾値未満の使用率を有することを示すアイドル事象を含む、方法。
【請求項46】
請求項24に記載の方法において、前記リソースアライメントを動的に修正する前記工程がスループットの損失を防止し、前記スループットの損失は、防止されなければ前記少なくとも1つの事象によってもたらされる、方法。
【請求項47】
符号化した一連の命令を有する非一時的コンピュータ可読媒体であって、プロセッサ装置によってロードされ実行されると、前記一連の命令が前記プロセッサ装置に、
プロセッサ装置の複数の仮想システム・オン・チップを設定する手順であって、前記複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように設定する手順と、
少なくとも1つの事象であって、前記プロセッサ装置の外部で生じる外部事象を含む少なくとも1つの事象に応答して前記リソースアライメントを動的に修正する手順であって、前記外部事象がルートフラップを含む事象において、前記複数の仮想システム・オン・チップの、パケットアプリケーションをサポートする仮想システム・オン・チップからリソースを削除することにより、前記プロセッサ装置が前記リソースアライメントを修正することを生じさせる、修正する手順とを実行させる非一時的コンピュータ可読媒体。
【請求項48】
請求項47に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの事象に応答して前記リソースアライメントを動的に修正する前記手順が、前記少なくとも1つの事象に応答して前記プロセッサ装置のスループットを達成する、非一時的コンピュータ可読媒体。
【請求項49】
請求項47に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記リソースアライメントに対する少なくとも1つの修正に応答して、修正済の前記リソースアライメントを動的に適用する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項50】
請求項49に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記リソースアライメントに対する前記少なくとも1つの修正を検出する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項51】
請求項49に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記リソースアライメントに対する前記少なくとも1つの修正の通信を受信する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項52】
請求項49に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項53】
請求項49に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの修正が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含み、前記少なくとも1つの修正を適用することが、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づくか、または、当該使用に適用された予め決められた時間値の期限切れに基づく、非一時的コンピュータ可読媒体。
【請求項54】
請求項47に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記少なくとも1つの事象の少なくとも1つのインスタンスを監視する手順と、
前記リソースアライメントの動的修正をトリガするために、前記少なくとも1つの事象の前記少なくとも1つのインスタンスを伝達する手順とを実行させる、非一時的コンピュータ可読媒体。
【請求項55】
請求項54に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数のリソースのうちの少なくとも1つのリソースの状態、または、前記複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム・オン・チップ状態を監視する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項56】
請求項55に記載の非一時的コンピュータ可読媒体において、前記複数のリソースのうちの前記少なくとも1つのリソースの前記状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、非一時的コンピュータ可読媒体。
【請求項57】
請求項55に記載の非一時的コンピュータ可読媒体において、前記複数の仮想システム・オン・チップの前記少なくとも1つの仮想システム・オン・チップ状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、非一時的コンピュータ可読媒体。
【請求項58】
請求項47に記載の非一時的コンピュータ可読媒体において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記一連の命令が前記プロセッサ装置に、さらに、前記少なくとも1つの事象に応答して前記複数のマッピングのうちの少なくとも1つのマッピングを動的に修正する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項59】
請求項58に記載の非一時的コンピュータ可読媒体において、
前記少なくとも1つのマッピングが、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインし、
前記一連の命令が前記プロセッサ装置に、さらに、前記所与の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも1つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも1つの他の仮想システム・オン・チップに前記所与のリソースをアラインする手順を実行させる、非一時的コンピュータ可読媒体。
【請求項60】
請求項47に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、少なくとも1つのマッピングを前記リソースアライメントに追加する手順を実行させ、前記少なくとも1つのマッピングが、前記複数の仮想システム・オン・チップのうちの1つの仮想システム・オン・チップに、前記複数のリソースのうちの1つのリソースをアラインする、非一時的コンピュータ可読媒体。
【請求項61】
請求項47に記載の非一時的コンピュータ可読媒体において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記一連の命令が前記プロセッサ装置に、さらに、前記複数のマッピングから少なくとも1つのマッピングを削除する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項62】
請求項47に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数の仮想システム・オン・チップのうちの2つ以上の仮想システム・オン・チップが、前記リソースアライメントに基づいて、前記複数のリソースのうちの所与のリソースを共有できるようにする手順を実行させる、非一時的コンピュータ可読媒体。
【請求項63】
請求項62に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数の仮想システム・オン・チップのうちの2つ以上の仮想システム・オン・チップが、前記所与のリソースに関して仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項64】
請求項47に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが、前記リソースアライメントに基づいて、所与のリソースを独占的に使用できるようにする手順を実行させる、非一時的コンピュータ可読媒体。
【請求項65】
請求項47に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの事象が、時刻に基づく事前スケジュールされた事象を含む、非一時的コンピュータ可読媒体。
【請求項66】
請求項47に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの事象が、前記複数のリソースのうちの所与のリソースの誤動作を示す故障事象を含む、非一時的コンピュータ可読媒体。
【請求項67】
請求項47に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの事象が、前記複数のリソースのうちの少なくとも1つのリソースがオーバサブスクリプションであることを示すか、または、前記複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム・オン・チップがオーバサブスクリプションであることを示す、オーバサブスクリプション事象を含む、非一時的コンピュータ可読媒体。
【請求項68】
請求項47に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの事象が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、前記複数のリソースのうちの所与のリソースが、前記所与の仮想システム・オン・チップによる使用率であって、閾値未満の使用率を有することを示すアイドル事象を含む、非一時的コンピュータ可読媒体。
【請求項69】
請求項47に記載の非一時的コンピュータ可読媒体において、前記リソースアライメントを動的に修正する前記手順がスループットの損失を防止し、前記スループットの損失は、防止されなければ前記少なくとも1つの事象によってもたらされる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【0001】
仮想マシンとは、物理マシンをソフトウエアで実現したものであって、物理マシンと同様に動作するものである。複数の仮想マシンが1つの物理マシン上に実現される場合があり、これにより、物理マシンの基本リソースを共有できる。
【発明の概要】
【0002】
例示的な一実施形態によれば、プロセッサ装置が、複数の仮想システム・オン・チップであって、前記複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように構成された、複数の仮想システム・オン・チップを備えてもよい。前記プロセッサ装置は、少なくとも1つの事象に応答して前記リソースアライメントを動的に修正するように構成されたリソースアライン部をさらに備えてもよい。
【0003】
前記リソースアライン部は、さらに、前記少なくとも1つの事象に応答して前記プロセッサ装置のスループットを達成するために、前記リソースアライメントを動的に修正するように構成されてもよい。
【0004】
前記プロセッサ装置は、さらに、前記リソースアライン部に動作可能に結合された設定部であって、前記リソースアライメントに対する少なくとも1つの修正に応答して、修正済の前記リソースアライメントを動的に適用するように構成された設定部を備えてもよい。
【0005】
前記設定部は、さらに、前記リソースアライン部が前記リソースアライメントを修正したことを検出するように構成されてもよい。
【0006】
前記設定部は、さらに、前記リソースアライン部が前記リソースアライメントを修正したことを示す通信を前記リソースアライン部から受信するように構成されてもよい。
【0007】
修正済の前記リソースアライメントを動的に適用するために、前記設定部は、修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新するようにさらに構成されてもよい。
【0008】
前記少なくとも1つの修正は、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含んでもよい。前記設定部は、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づいて、または、当該使用に適用された予め決められた時間値の期限切れに基づいて、前記少なくとも1つの修正を適用するようにさらに構成されてもよい。
【0009】
前記プロセッサ装置は前記リソースアライン部に動作可能に結合された監視部をさらに備えもよい。前記監視部は、前記少なくとも1つの事象の少なくとも1つのインスタンスを監視するように構成され、かつ、前記リソースアライメントを動的に修正するように前記リソースアライン部をトリガするために、前記少なくとも1つの事象の前記少なくとも1つのインスタンスを前記リソースアライン部に伝達するように構成されてもよい。
【0010】
前記少なくとも1つの事象の前記少なくとも1つのインスタンスを監視するために、前記少なくとも1つの監視部は、前記複数のリソースのうちの少なくとも1つのリソースの状態、または前記複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム状態を監視するようにさらに構成されてもよい。
【0011】
前記少なくとも1つのリソースの前記状態は、故障状態、利用状態、または故障状態と利用状態の組合せを含んでもよい。
【0012】
前記少なくとも1つの仮想システム状態は、故障状態、利用状態、または故障状態と利用状態の組合せを含んでもよい。
【0013】
前記リソースアライメントは、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含んでもよい。前記リソースアライメントを動的に修正するために、前記リソースアライン部は、前記少なくとも1つの事象に応答して前記複数のマッピングのうちの少なくとも1つのマッピングを動的に修正するようにさらに構成されてもよい。
【0014】
前記少なくとも1つのマッピングは、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインしてもよい。前記少なくとも1つのマッピングを動的に修正することは、前記所与の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも1つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも1つの他の仮想システム・オン・チップに前記所与のリソースをアラインすることを含んでもよい。
【0015】
前記リソースアライメントを動的に修正するために、前記リソースアライン部は、少なくとも1つのマッピングを前記リソースアライメントに追加するようにさらに構成されてもよく、前記少なくとも1つのマッピングは、前記複数の仮想システム・オン・チップのうちの1つの仮想システム・オン・チップに、前記複数のリソースのうちの1つのリソースをアラインする。
【0016】
前記リソースアライメントは、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含んでもよく、前記リソースアライメントを動的に修正するために、前記複数のマッピングから少なくとも1つのマッピングを削除することを含んでもよい。
【0017】
前記リソースアライメントは、前記複数の仮想システム・オン・チップのうちの2つ以上の仮想システム・オン・チップが前記複数のリソースのうちの所与のリソースを共有できるようにしてもよい。
【0018】
前記複数の仮想システム・オン・チップのうちの前記2つ以上の仮想システム・オン・チップそれぞれは、前記所与のリソースに関して前記仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用するように構成されてもよい。
【0019】
前記リソースアライメントは、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが所与のリソースを独占的に使用できるようにしてもよい。
【0020】
前記少なくとも1つの事象は、前記プロセッサ装置の外部で生じる外部事象を含んでもよい。
【0021】
前記少なくとも1つの事象は、時刻に基づく事前スケジュールされた事象を含んでもよい。
【0022】
前記少なくとも1つの事象は、前記複数のリソースのうちの所定のリソースの誤動作を示す故障事象を含んでもよい。
【0023】
前記少なくとも1つの事象は、前記複数のリソースのうちの少なくとも1つのリソースがオーバサブスクリプション(oversubscription)であることを示すか、または、前記複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム・オン・チップがオーバサブスクリプションであることを示す、オーバサブスクリプション事象を含んでもよい。
【0024】
前記少なくとも1つの事象は、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、前記複数のリソースのうちの所与のリソースが、前記所与の仮想システム・オン・チップによる使用率であって、閾値未満の使用率を有することを示すアイドル事象を含んでもよい。
【0025】
前記リソースアライメントはスループットの損失を防止するように動的に修正されてもよく、前記スループットの損失は、防止されなければ前記少なくとも1つの事象によってもたらされる。
【0026】
さらなる例示的な実施形態によれば、方法が、プロセッサ装置の複数の仮想システム・オン・チップを設定する工程であって、前記複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように設定する工程を備えてもよい。前記方法は、少なくとも1つの事象に応答して前記リソースアライメントを動的に修正する工程をさらに備えてもよい。
【0027】
前記少なくとも1つの事象に応答して前記リソースアライメントを動的に修正する工程は、前記少なくとも1つの事象に応答して前記プロセッサ装置のスループットを達成してもよい。
【0028】
前記方法は、前記リソースアライメントに対する少なくとも1つの修正に応答して、修正済の前記リソースアライメントを動的に適用する工程をさらに備えてもよい。
【0029】
前記方法は、前記リソースアライメントに対する前記少なくとも1つの修正を検出する工程をさらに備えてもよい。
【0030】
前記方法は、前記リソースアライメントに対する前記少なくとも1つの修正の通信を受信する工程をさらに備えてもよい。
【0031】
前記方法は、修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新する工程をさらに備えてもよい。
【0032】
前記少なくとも1つの修正は、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含んでもよい。前記少なくとも1つの修正を適用することは、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づくか、または、当該使用に適用された予め決められた時間値の期限切れに基づいてもよい。
【0033】
前記方法は、前記少なくとも1つの事象の少なくとも1つのインスタンスを監視する工程と、前記リソースアライメントの動的修正をトリガするために、前記少なくとも1つの事象の前記少なくとも1つのインスタンスを伝達する工程とをさらに備えてもよい。
【0034】
前記監視する工程は、前記複数のリソースのうちの少なくとも1つのリソースの状態、または、前記複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム状態を監視する工程を含んでもよい。
【0035】
前記リソースアライメントは、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含んでもよく、前記リソースアライメントを動的に修正する工程は、前記少なくとも1つの事象に応答して前記複数のマッピングのうちの少なくとも1つのマッピングを動的に修正する工程を含んでもよい。
【0036】
前記少なくとも1つのマッピングは、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインしてもよい。前記少なくとも1つのマッピングを動的に修正する前記工程は、前記所定の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも1つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも1つの他の仮想システム・オン・チップに前記所与のリソースをアラインする工程を含んでもよい。
【0037】
前記リソースアライメントを動的に修正する工程は、少なくとも1つのマッピングを前記リソースアライメントに追加する工程を含んでもよく、前記少なくとも1つのマッピングは、前記複数の仮想システム・オン・チップのうちの1つの仮想システム・オン・チップに、前記複数のリソースのうちの1つのリソースをアラインしてもよい。
【0038】
前記リソースアライメントは、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含んでもよく、前記リソースアライメントを動的に修正する前記工程は、前記複数のマッピングから少なくとも1つのマッピングを削除する工程を含んでもよい。
【0039】
前記方法は、前記複数の仮想システム・オン・チップのうちの2つ以上の仮想システム・オン・チップが、前記リソースアライメントに基づいて、前記複数のリソースのうちの所与のリソースを共有できるようにする工程をさらに備えてもよい。
【0040】
前記2つ以上の仮想システム・オン・チップが前記所与のリソースを共有できるようにする前記工程は、前記所与のリソースに関して前記仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用するように前記2つ以上の仮想システム・オン・チップを構成する工程を含んでもよい。
【0041】
前記方法は、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが、前記リソースアライメントに基づいて、所与のリソースを独占的に使用できるようにする工程をさらに備えてもよい。
【0042】
前記リソースアライメントを動的に修正する前記工程はスループットの損失を防止してもよく、前記スループットの損失は、防止されなければ前記少なくとも1つの事象によってもたらされる。
【0043】
さらに別の例示的な実施形態は、プロセッサによってロードされ実行されると、本明細書に開示する方法を前記プロセッサに実行し終えるようにさせる、一連の命令を記憶した非一時的コンピュータ可読媒体を含んでもよい。
【0044】
なお、開示の実施形態は、方法、装置、システム、またはプログラムコードを具現化したコンピュータ可読媒体の形式で実現され得る。
【0045】
前述の内容は、以下の本発明の例示的な実施形態のさらに具体的な説明から明らかになるであろう。添付の図面において、異なる図を通して同一の参照符号は同一の部分を指すものとする。図面は必ずしも縮尺通りではなく、むしろ、本発明の実施形態の説明に重点が置かれている。
【図面の簡単な説明】
【0046】
【
図1】プロセッサ装置の例示的な実施形態のブロック図である。
【
図2】プロセッサ装置の別の例示的な実施形態のブロック図である。
【
図3】リソースアライメントの例示的な実施形態のブロック図である。
【
図4】リソースアライメントの別の例示的な実施形態のブロック図である。
【
図6】随意で開示の実施形態において用いられるコンピュータの例示的な内部構造のブロック図である。
【発明を実施するための形態】
【0047】
仮想システム・オン・チップ(VSoC)とは、物理マシンの基本リソースを異なる仮想システム間で共有できるようにするマシンを実現したものである。VSoC実装下では、2つ以上のオペレーティングシステムアプリケーションが、互いに完全に独立しかつ保護された状態で、同一の物理マシン上に共存できる。異なる仮想システム間における物理マシンのリソースの割当ては、ハードウエアおよびソフトウエアの構成の組合せを利用して行われてもよい。
【0048】
2つ以上の仮想システム・オン・チップにリソースを割当てることにより、開示の実施形態は、当該2つ以上の仮想システム・オン・チップの間でリソースを保護しつつ共有可能にしながら、1つのチップに埋め込まれた、2つ以上のアプリケーションおよびオペレーティングシステムの実行に対処してもよい。
【0049】
プロセッサ装置は、多種多様なネットワーク・ストレージ機器において使用され得る。これらの機器には、ルータ、スイッチ、セキュリティ・アプライアンス、コンテンツアウェアのスイッチ、トリプルプレイゲートウェイ、アグリゲーション装置およびゲートウェイ、ストレージアレイ、ストレージネットワーク機器、ならびに、サーバなどの、仮想化を活用する可能性のある任意の好適な装置もしくはシステムが含まれる。開示の実施形態によれば、プロセッサ装置のVSoCは、いずれのリソースがプロセッサ装置のいずれのVSoCによる使用に割り当てられるかを定義するリソースアライメントに基づいて、当該VSoCに割り当てられたリソースを利用してもよい。リソースは、処理コア、メモリ、キャッシュ、入出力(I/O)ポート、I/O装置、ハードウエアアクセラレータ、オペレーティングシステム、およびソフトウエアアプリケーションなどの、VSoCによって利用される可能性がある任意の好適なリソースを含んでもよい。
【0050】
例えば、プロセッサ装置は、当該プロセッサ装置が高スループットを達成できるように処理コアの負荷を低減する特定用途コプロセッサのような、リソースを含んでもよい。処理コアは、フル機能かつ高性能である、整数または浮動小数点の論理演算装置(ALU)の実装であってよく、業界標準C/C++のような任意の好適なプログラミング環境を直接サポートしてもよい。処理コアは、仮想システム・オン・チップ内のフル機能オペレーティングシステムを起動して動作させるために必要な全ての要求事項を有してもよい。
【0051】
リソースはプロセッサ装置の内部にあっても外部にあってもよい。リソースアライメントは、プロセッサ装置のリソースをプロセッサ装置の仮想システム・オン・チップに対応するサブセットにグループ分けするアライメントを含んでもよい。サブセットのリソースの一部が重複してもよい。例えば、リソースアライメントで定義されているように、処理コアのようなリソースが、2つ以上の仮想システム・オン・チップによって共有されてもよい。開示の実施形態によれば、処理コアのようなリソースは、リソースアライメントに基づいて、2つ以上の異なる仮想システム・オン・チップによって利用されてもよい。共有は、その仮想システム・オン・チップに割り当てられた割合に基づいてもよい。
【0052】
リソースの共有は、その仮想システム・オン・チップに割り当てられた範囲に基づいてリソースを共有することを含んでもよい。例えば、2つ以上の仮想システム・オン・チップがメモリのような同一のリソースにアラインされてもよい。仮想システム・オン・チップそれぞれは、当該メモリの特定の範囲に限定されてもよく、これにより、当該メモリ内の各メモリ位置が隔離される。
【0053】
あるいは、リソースは、リソースアライメントに従って、特定のVSoCによって独占的に使用されてもよい。例えば、特定種類のI/Oポートのようないくつかのリソースは、共有されなくてもよい。
【0054】
リソースアライメントは動的に修正されてもよい。本明細書では、リソースアライメントを動的リソースアライメント、リソース割当て、または動的リソース割当てという場合がある。開示の実施形態によれば、リソースアライメントは、プロセッサ装置のリソースを複数の仮想システム・オン・チップにいかに分配するかを定義してもよい。リソースアライメントは、ランタイムの前に作成されてもよく、あるいはランタイムの間に作成されてもよい。リソースアライメントは、少なくとも1つの事象に基づいて、ランタイムの間に動的に修正されてもよい。リソースアライメントは、タイマー、監視されるメトリクス(基準)、または外部事象に基づいて、ランタイム中に動的に修正されてもよい。例えば、少なくとも1つの事象は、時刻を示すタイマーに基づいてもよい。少なくとも1つの事象はメトリクスに基づいてもよい。メトリクスの例としては、ランタイム使用状況メトリクス、フォールトメトリクス、サービス品質(QoS)メトリクス、および高度もしくは低度の透かしなどの、任意の好適なメトリクスが挙げられる。
【0055】
図1は、プロセッサ装置102の例示的な実施形態のブロック
図100である。プロセッサ装置102は、複数の仮想システム・オン・チップ104a~nを備える。複数の仮想システム・オン・チップ104a~nは、複数の仮想システム・オン・チップ104a~nと複数のリソース106a~mとの間のリソースアライメント108に従って複数のリソース106a~mを利用するように構成されてもよい。リソースアライメント108は、複数のリソース106a~mのうちのいずれのリソースが複数の仮想システム・オン・チップ104a~nのうちのいずれの仮想システム・オン・チップに割り当てられるかを定義してもよい。プロセッサ装置102は、少なくとも1つの事象114に応答してリソースアライメント108を動的に修正するように(112)構成されたリソースアライン部110をさらに備える。一実施形態によれば、プロセッサ装置102は、少なくとも1つの処理コア(図示せず)と、一連の命令を記憶した少なくとも1つのメモリ(図示せず)とを含んでもよい。当該一連の命令は、少なくとも1つの処理コアによってロードされて実行されると、プロセッサ装置102にリソースアライン部110を実装させる。別の実施形態によれば、リソースアライン部110を実装するために、プロセッサ装置102は1つ以上の回路装置を含んでもよい。この回路装置の例としては、2010年4月28日出願の米国特許出願第12/769,463号(米国特許第8,826,271号、その全教示が参照により本明細書に援用される)および後述する
図6に開示のものまたはその等価物などが挙げられる。
【0056】
複数のリソース106a~mは、処理コア、メモリ、キャッシュ、入出力(I/O)ポート、I/O装置、ハードウエアアクセラレータ、オペレーティングシステム、およびソフトウエアアプリケーションなどの、VSoCによって利用される可能性がある任意の好適なリソースを含んでもよい。このようなリソースはプロセッサ装置102の内部にあっても外部にあってもよい。複数の仮想システム・オン・チップ104a~nと複数のリソース106a~mとの間のリソースアライメント108は、複数の仮想システム・オン・チップ104a~nのうちの仮想システム・オン・チップの間で一部のリソースは共有されて一部のリソースは共有されないように、複数のリソース106a~mを区分けしてもよい。リソースアライメント108は、複数のリソース106a~mのうちのいずれのリソースが複数の仮想システム・オン・チップ104a~nのうちのいずれの仮想システム・オン・チップによる使用に割り当てられるかを定義してもよい。
【0057】
リソースアライン部110は、少なくとも1つの事象114に応答して、プロセッサ装置102のスループットを達成するようにリソースアライメント108を動的に修正するようにさらに構成されてもよい。例えば、この動的リソースアライメント108は、スループット要求事項を維持するために、必要に応じて特定の仮想システム・オン・チップに対してリソースを追加したりリソースを削除したりするように、修正されてもよい。
【0058】
少なくとも1つの事象は、プロセッサ装置の外部で生じる外部事象を含んでもよい。例えば、ネットワーク環境において、外部事象は、ボーダゲートウェイプロトコル(BGP)ルートフラップであってもよい。ネットワーク環境において、BGPルートフラップは、ルーティングされるパケットを減らす必要があることを知らせてもよい。このため、リソースアライメントは、パケットアプリケーションをサポートする仮想システム・オン・チップからリソースを削除するように修正されてもよい。外部事象はウイルス攻撃の通知であってもよい。ウイルス攻撃の通知は、プロセッサ装置102の計算量を増加してパケットのより厳密な検査が必要であることを知らせるものであってもよい。動的リソースアライメント108は、例えば、処理コアのような好適なリソースなどのより多くのリソースを、パケット検査用のアプリケーションを含む所与のVSoCに割当てるように修正されてもよい。BGPルートフラップおよびウイルス攻撃通知は、外部事象の例であるが、外部事象はプロセッサ装置外部のいかなる好適な事象であってもよい。
【0059】
少なくとも1つの事象は、時刻に基づく事前スケジュールされた事象を含んでもよい。時刻は、プロセッサ装置の利用が極めて頻繁である(例えば高トラフィック負荷である)と理解される時間かもしれない。時刻に応じてリソースを仮想システム・オン・チップに再アライン(本明細書では再割当てともいう)することにより、当該時刻において利用が極めて頻繁である仮想システム・オン・チップに追加のリソースを前もって配分できるようにしておいてもよい。このため、この動的再アライメントは、前もって、トラフィックの廃棄を防止しプロセッサ装置に対するスループット要求事項を守るように、修正されてもよい。
【0060】
少なくとも1つの事象は、複数のリソースのうちの所与のリソースの誤動作を示す故障事象を含んでもよい。誤動作中のリソースとVSoCとの間のアライメントは、VSoCがもはや誤動作中のリソースにアクセスせず、その代わりに別のリソースとアラインされるように、修正されてもよい。
【0061】
少なくとも1つの事象はオーバサブスクリプション事象を含んでもよい。オーバサブスクリプション事象は、複数のリソースのうちの少なくとも1つのリソースがオーバサブスクリプションであることを示すか、または、複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム・オン・チップがオーバサブスクリプションであることを示す。このようなオーバサブスクリプションは、メトリクスに基づいて判断されてもよい。例えば、トラフィック廃棄を反映するQoSメトリクスが、オーバサブスクリプション事象を判断するために使用されてもよい。オーバサブスクリプション事象に応答して、少なくとも1つのリソースにアラインされる仮想システム・オン・チップの数が、動的リソースアライメントを修正することによって低減されてもよい。さらに、少なくとも1つの仮想システム・オン・チップにアラインされるリソースの数が、動的リソースアライメントを修正することによって増加されてもよい。
【0062】
少なくとも1つの事象は、アイドル事象を含んでもよい。アイドル事象は、複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、複数のリソースのうちの所与のリソースが、当該所与の仮想システムによる使用率であって、閾値未満である使用率を有することを示す。このため、動的リソースアライメントは、当該所与のリソースを共有している仮想システム・オン・チップの数を増加するように修正されてもよい。
【0063】
リソースアライメントは、スループットの損失を防止するように動的に修正されてもよい。なお、スループットの損失は、防止されなければ、少なくとも1つの事象によってもたらされる。例えば、特定の時刻におけるトラフィック損失を示す履歴メトリクスに基づいて、動的リソースアライメントは、将来当該特定の時刻にトラフィック損失が生じないように、当該特定の時刻において修正されてもよい。このため、少なくとも1つの事象は時刻に基づく事前スケジュールされた事象を含んでもよい。
【0064】
図2は、プロセッサ装置202の別の例示的な実施形態のブロック
図200である。プロセッサ装置202は、複数の仮想システム・オン・チップ204a~nを備える。複数の仮想システム・オン・チップ204a~nは、複数の仮想システム・オン・チップ204a~nと複数のリソース206a~mとの間のリソースアライメント208に従って複数のリソース206a~mのリソースを利用するように構成されてもよい。プロセッサ装置202はリソースアライン部210をさらに備える。リソースアライン部210は、少なくとも1つの事象214に応答してリソースアライメント208を動的に修正するように構成されてもよい。
【0065】
プロセッサ装置202は、リソースアライン部210に動作可能に結合された設定部216をさらに備える。設定部216は、リソースアライメント208に対する少なくとも1つの修正220に応答して、修正済リソースアライメント218を動的に適用するように構成されてもよい。設定部216は、リソースアライメント208の内容を監視することによってリソースアライン部210がリソースアライメント208を修正したことを検出するように構成されてもよい。
【0066】
例えば、リソースアライメント208はデータ構造であってもよく、設定部216は、データ構造の内容の変更を監視するように構成されてもよい。いくつかの実施形態によれば、リソースアライメント208に対する少なくとも1つの修正220に基づいて割り込み(図示せず)がアサートされてもよい。リソースアライメント208に対する少なくとも1つの修正220を検出することは、アサートされる割り込みに応じてもよい。しかし、リソースアライメント208に対する少なくとも1つの修正220を検出することは、任意の好適なやり方で行われてもよい。
【0067】
例えば、いくつかの実施形態によれば、設定部216は、リソースアライン部210がリソースアライメント208を修正したことを示すリソースアライン部210からの通信222を、受信するように構成されてもよい。通信222は、プロセッサ装置202のメールボックスを介して送信された通信メッセージ、および開放されるセマフォなどの、任意の好適な通信機構であってもよい。
【0068】
修正済リソースアライメント218を動的に適用するために、設定部216は、コンフィグレーション更新221を送信してプロセッサ装置202のコンフィグレーション224を更新し、複数の仮想システム・オン・チップ204a~nに修正済リソースアライメント218に従って複数のリソース206a~mを利用させてもよい。例えば、コンフィグレーション224は、複数のリソース206a~mへのVSoCのアクセス許可を強制するハードウエアレジスタコンフィグレーション設定(図示せず)を含んでもよい。コンフィグレーション224は、複数のリソース206a~mへのVSoCのアクセス許可を強制する任意の好適なコンフィグレーション設定を含んでもよい。コンフィグレーション224は、プロセッサ装置202用の対処情報(図示せず)を含んでもよく、この対処情報はリソースアライメント208に依存する。
【0069】
例えば、対処情報は、プロセッサ装置202の2次キャッシュコントローラ(図示せず)用のコンフィグレーションを含んでよく、2次キャッシュコントローラは、複数のリソース206a~mに含まれるメモリへのメモリアクセスを制御する。例えば、プロセッサ装置のメモリを伴う全てのアクセスは、2次キャッシュコントローラによって制御される2次キャッシュ(図示せず)を通るようにルーティングされてもよい。なぜなら、2次キャッシュは、プロセッサ装置202のメモリアクセスのための中心位置として作用し得るからである。
【0070】
複数の仮想システム・オン・チップ204a~nは、オペレーティングシステムおよび埋め込まれたアプリケーションを実行する仮想実行環境として作用してもよい。設定部216は、コンフィグレーション224を更新して、各VSoCがリソースアライメント208に従ってその対応するリソースにアクセスするようにしてもよい。複数の仮想システム・オン・チップ204a~nによって保護が提供されていると仮定して、プロセッサ装置202の各VSoC内で動作しているアプリケーションおよびオペレーティングシステムは、プロセッサ装置202の他の仮想システム・オン・チップ内で動作している他のアプリケーションおよびオペレーティングシステムを認識しなくてもよい。
【0071】
コンフィグレーション224は、リソースまたはリソースのパーティションへのVSoCアクセスを、リソースアライメント208における記述に従って、可能にするかまたは防止してもよい。例えば、動的ランダムアクセスメモリ(DRAM)などのリソースのパーティションは、1つのパーティションが1つのVSoCによってアクセスされて他の仮想システム・オン・チップによってはアクセスされないように構成されてもよい。コンフィグレーション224は、仮想システム・オン・チップのあるグループが所与のリソースまたはその一部を共有できるようにし、他の仮想システム・オン・チップが当該所与の共有リソースにアクセスできないようにしてもよい。
【0072】
コンフィグレーション224は、共有リソースへのVSoC優先順位を強制して、1つのVSoCが、プロセッサ装置の他の仮想システム・オン・チップよりも優先的に共有リソースにアクセスするための厳密な優先順位または重みづけされた優先順位を有するようにしてもよい。このような優先順位情報(図示せず)は、コンフィグレーション224の一部として含まれてもよく、またはリソースアライメント208の一部として記憶されてもよい。
【0073】
少なくとも1つの修正220は、複数の仮想システム・オン・チップ204a~nのうちの所与の仮想システム・オン・チップと、複数のリソース206a~mのうちの所与のリソースとの間のアライメントに対する修正を含んでもよい。設定部216は、当該所与の仮想システム・オン・チップが所与のリソースの使用を放棄することに基づいて、または当該使用に適用された予め決められた時間値の期限切れに基づいて、少なくとも1つの修正220を適用するようにさらに構成されてもよい。
【0074】
例えば、少なくとも1つの修正220は、上記所与の仮想システム・オン・チップとは異なる仮想システム・オン・チップに上記所与のリソースをアラインしても(すなわち、割り当てても)よいが、上記所与のリソースは依然として上記所与の仮想システム・オン・チップによって使用中であるかもしれない。設定部216は、プロセッサ装置202においてローカルにアクセスされ得るリソース使用中情報219に基づいて、上記所与のリソースが上記所与の仮想システム・オン・チップによって依然として使用中であることを判断してもよい。そのようなリソース使用中情報219は、複数の仮想システム・オン・チップ204a~nによって更新されてもよく、またはその他の任意の好適な方法で更新されてもよい。
【0075】
設定部216は、上記所与の仮想システム・オン・チップが上記所与のリソースの使用を放棄するまで、上記少なくとも1つの修正220の適用を遅らせてもよい。あるいは、設定部216が、上記所与の仮想システム・オン・チップが上記所与のリソースの使用を放棄するのを待つ、予め決められた時間値を採用してもよい。設定部216は、予め決められた時間値の期限切れに基づいて上記少なくとも1つの修正220を適用してもよい。
【0076】
プロセッサ装置202は、リソースアライン部210に動作可能に結合された監視部226をさらに備えてもよい。監視部226は、少なくとも1つの事象214の少なくとも1つのインスタンスを監視し、かつ、少なくとも1つの事象214の少なくとも1つのインスタンスをリソースアライン部210に伝達して、リソースアライン部210をトリガして(起動して)リソースアライメント208を動的に修正させるように、構成されてもよい。
【0077】
少なくとも1つの事象214の少なくとも1つのインスタンスを監視するために、少なくとも1つの監視部226は、複数のリソース206a~mのうちの少なくとも1つのリソースの状態または複数の仮想システム・オン・チップ204a~nのうちの少なくとも1つの仮想システム状態を監視するようにさらに構成されてもよい。複数のリソース206a~mのうちの少なくとも1つのリソースの状態は、故障状態、利用状態、またはこれらの組合せを含んでもよい。複数の仮想システム・オン・チップ204a~nのうちの少なくとも1つの仮想システム状態は、故障状態、利用状態、またはこれらの組合せを含んでもよい。
【0078】
少なくとも1つの事象214の少なくとも1つのインスタンスを監視するために、監視部226は、プロセッサ装置202の監視情報227を監視してもよい。監視情報227は、時刻、オーバサブスクリプションメトリクス、アイドルメトリクス、リソース透かし、ネットワーク情報、リソース故障情報などの情報を含んでもよい。監視情報227は、リソースアライメント208を少なくとも1つの事象214に応答して動的修正することが有利と思われる、少なくとも1つの事象214を判断するために監視され得る、任意の好適な情報を含んでもよい。
【0079】
監視部226は、事象スケジューラ229を含んでもよい。事象スケジューラ229は、再アライメントスケジュール(図示せず)に基づいて少なくとも1つの事象214をスケジュールしてもよい。再アライメントスケジュールは、静的スケジュール、または周期的にそれ自体で調整を行う動的スケジュールであってもよい。再アライメントスケジュールは、1つ以上の時刻エントリを含んでもよい。例えば、再アライメントスケジューラは、プロセッサ装置の性能に関して再アライメントが有利である時刻エントリを1つ以上含んでもよい。再アライメントスケジュールは、プロセッサ装置全体の使用状況メトリクスに基づいて、VSoC使用状況メトリクス、およびリソースメトリクスなどの任意の好適なメトリクス毎に動的に調整されてもよい。再アライメントは、BGPルートフラップのような外部事象などの任意の好適な外部事象に基づいてもよい。
【0080】
一実施形態によれば、リソースはメモリであってもよい。メモリは1つ以上のチャンクを含んでもよい。1つ以上のチャンクそれぞれは、メモリからの対応する固定数のビットを含む、当該メモリの1区画であってもよい。固定数のビットは連続してもよい。あるいは、1つ以上のチャンクは、メモリ内に分散している、当該メモリからの固定数のビットを含んでもよい。1つ以上のチャンクはそれぞれ、少なくとも1つの事象に基づいて、解放されてもよく、または所定のVSoCに割当てられてもよい。少なくとも1つの事象は、再アライメントスケジュールに応じてもよく、このため、メモリの1つ以上のチャンクがスケジュールに基づいて動的に再アラインされてもよい。例えば、少なくとも1つの事象は再アライメントスケジュールに応じてもよいため、メモリの1つ以上のチャンクは、所与のVSoCが例えば低負荷であると分かっている時に、スケジュールどおりに解放されてもよい。その一方で、メモリの1つ以上のチャンクは、所与のVSoCが高負荷であると分かっている時に、スケジュールどおりに所定のVSoCに割り当てられてもよい。
【0081】
開示の実施形態によれば、監視部226は、様々なメトリクスを監視して、上述した故障、オーバサブスクリプション、またはアイドルの事象を判断するように構成されてもよい。例えば、監視部226は、パリティエラーまたは誤り訂正符号(ECC)エラーなどのメトリクスを監視して故障事象を判断するように構成されてもよい。監視部226は、パリティエラーまたは誤り訂正符号(ECC)エラーに対して閾値を適用して、故障事象を判断してもよい。故障事象は、任意の好適な方法で判断されてもよい。例えば、リソースは、故障事象を判断するために使用され得る、ハードウエア故障インジケータまたは劣化種類インジケータを有してもよい。QoS統計のようなメトリクスが、オーバサブスクリプションまたはアイドルの事象を判断するために監視部226によって監視されてもよい。リソースアライメントを動的に修正して、所与の仮想システム・オン・チップが例えばシルバーグレードのような好適なQoSグレードなどの特定のQoS要求事項を満たすようしてもよい。
【0082】
一実施形態によれば、プロセッサ装置202は、少なくとも1つの処理コア(図示せず)と、一連の命令を記憶する少なくとも1つのメモリ(図示せず)とを含んでもよい。当該一連の命令は、少なくとも1つの処理コアによって読み込まれて実行されると、プロセッサ装置202に、リソースアライン部210、設定部216および監視部226を実装させる。別の実施形態によれば、リソースアライン部210、設定部216および監視部226を実装するために、プロセッサ装置202は1つ以上の回路装置を含んでもよい。この回路装置の例としては、2010年4月28日出願の米国特許出願第12/769,463号(米国特許第8,826,271号、その全教示が参照により本明細書に援用される)および後述する
図6に開示のものまたはその等価物などが挙げられる。
【0083】
図3はリソースアライメント308の例示的な実施形態のブロック
図300である。リソースアライメント308は、複数のリソース306a~mと複数の仮想システム・オン・チップ304a~nとの間に複数のマッピング340a~kを含んでもよい。リソースアライメント308を動的に修正するために、上述した
図1のリソースアライン部110または
図2のリソースアライン部210などのリソースアライン部が、上述した
図1の少なくとも1つの事象114または
図2の少なくとも1つの事象214などの少なくとも1つの事象に応答して、複数のマッピング340a~kのうちの少なくとも1つのマッピングを動的に修正するように、さらに構成されてもよい。
【0084】
少なくとも1つのマッピングは、複数のリソース306a~mのうちの所与のリソースを複数の仮想システム・オン・チップ304a~nのうちの所与の仮想システム・オン・チップにアラインしてもよい。例えば、マッピング1,1304aは、VSoC1304aをリソース1306aにマッピングし、マッピング1,2304bはVSoC1304aをリソース2306bにマッピングし、マッピング2,2304cはVSoC2304bをリソース2306bにマッピングし、マッピングI,j304kはVSoCi304iをリソースj306jにマッピングする。
【0085】
少なくとも1つのマッピングを動的に修正することは、複数の仮想システム・オン・チップ304a~nのうちの少なくとも1つの他の仮想システム・オン・チップに所与のリソースをアラインして、所与の仮想システムが当該所与のリソースを採用できないようにし、当該少なくとも1つの他の仮想システムが当該所与のリソースを採用できるようにすることを、含んでもよい。例えば、少なくとも1つのマッピングを修正することは、マッピングI,j304kを削除しかつマッピングn,j340lを追加して、VSoCi304iがリソースj306jを使用できなくしかつVSoCn304nがリソースj306jを採用できるようにすることを含んでもよい。
【0086】
リソースアライメント308を動的に修正するために、上述した
図1のリソースアライン部110または
図2のリソースアライン部210などのリソースアライン部が、少なくとも1つのマッピングをリソースアライメント308に追加するようにさらに構成されてもよく、少なくとも1つのマッピングは、複数の仮想システム・オン・チップ304a~nのうちの1つの仮想システム・オン・チップに複数のリソース306a~mのうちの1つのリソースをアラインする。例えば、マッピング
n,j340lを追加することにより、VSoC
n304nがリソース
j306jを採用できるようにしてもよい。
【0087】
リソースアライメント308は、複数のリソース306a~mと複数の仮想システム・オン・チップ304a~nとの間に複数のマッピング340a~kのような複数のマッピングを含んでもよく、リソースアライメント308を動的に修正するために、マッピングI,j304kのような複数のマッピング340a~kから少なくとも1つのマッピングを削除することを含んでもよい。
【0088】
リソースアライメント308は、複数の仮想システム・オン・チップ304a~nのうちの2つ以上の仮想システム・オン・チップが複数のリソース306a~mのうちの所与のリソースを共有できるようにしてもよい。例えば、リソースアライメント308のマッピング1,2340bおよびマッピング2,2340cによって、リソース2306bがVSoC1304aおよびVSoC2304bによって共有される。
【0089】
複数の仮想システム・オン・チップ304a~nのうちの2つ以上の仮想システム・オン・チップそれぞれは、所与のリソースに関して各仮想システムに割り当てられた各使用率に基づいて当該所定のリソースを使用するように構成されてもよい。使用率は、所定のリソースの種類、各仮想システム・オン・チップ上で動作しているアプリケーションの種類、またはこれらの組合せに応じてもよい。
【0090】
使用率は、対応する仮想システム・オン・チップによって制御されてもよい。使用率は、仮想マシンモニタ(VMM)(図示せず)(本明細書ではハイパーバイザーともいう)によって監視されてもよい。仮想マシンモニタは、ウォッチドッグに基づいて、対応する仮想システム・オン・チップに所与のリソースの使用を放棄させてもよい。
【0091】
リソースアライメント308は、複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが所与のリソースを独占的に使用できるようにしてもよい。例えば、リソース1306aは、特定種類のI/Oポートのような非共有リソースであってもよく、その他の任意の好適な非共有リソースであってもよく、マッピング1,1340aによって、VSoC1304aがリソース1306aを独占的に使用できる。
【0092】
図4はリソースアライメント408のさらなる例示的な実施形態のブロック
図400である。リソースアライメント408は、複数のエントリ460a~460nを含むリソースアライメント表であってもよい。複数のエントリ460a~460nはそれぞれ、固有の仮想システム・オン・チップ識別子462をリソース識別子464に関連付ける。例えば、複数のエントリ460a~460nは、固有の仮想システム・オン・チップ識別子466a~466nをリソース識別子468a~468nにそれぞれ関連付けてもよい。
【0093】
固有の仮想システム・オン・チップ識別子466a~466nはそれぞれ、上述したような
図1、
図2および
図3それぞれの複数の仮想システム・オン・チップ104a~n、204a~n、および304a~nなどの複数の仮想システム・オン・チップのうちの1つの仮想システム・オン・チップを、一意に識別してもよい。リソース識別子468a~468nは、
図1、
図2および
図3それぞれの複数のリソース106a~106m、206a~206m、および306a~306mなどの複数のリソースのうちのいずれのリソースが、固有の仮想システム・オン・チップ識別子466a~466nによって識別される、対応する1つ以上の仮想システム・オン・チップによって利用され得るかを示してもよい。
【0094】
例えば、リソースアライメント408のエントリ460bは、仮想システム識別子466bをリソース識別子468bに関連付けてもよい。一実施形態によれば、リソース識別子468a~468nはビットマップを含んでもよく、ビットマップ内の各ビットが対応リソースのアライメント表示を提供する。しかし、リソース識別子は、仮想システム・オン・チップをリソースにアラインする任意の好適な方法で実現されてもよい。本明細書では、リソース識別子のビットマップの各ビットはリソースアライメント表示ともいう。
【0095】
仮想システム・オン・チップ識別子466a~466nのような仮想システム・オン・チップ識別子に関連付けられた、リソース識別子468a~468nのようなリソース識別子のビットマップの各ビットは、第1の状態を有し、当該ビットに関連付けられた各リソースを仮想システム・オン・チップ識別子に関連付けられたVSoCにマッピングしてもよい。すなわち、各リソースはVSoCにアラインされる。ビットマップの各ビットは、第2の状態を有し、各リソースと仮想システム・オン・チップ識別子に関連付けられたVSoCとの間にマッピングが存在しないこと、すなわち、各リソースとVSoCはアラインされていないことを反映してもよい。例えば、ビットマップ468aのビット470を使用して、仮想システム・オン・チップ識別子466aに関連付けられた仮想システム・オン・チップを、ビット470のビット位置に関連付けられたリソースにアラインしてもよい。ビット470は、第1の状態「1」を有し、仮想システム・オン・チップをリソースにアラインし、これにより、当該仮想システム・オン・チップが当該リソースを使用できるようにしてもよい。その一方で、ビット470は、第2の状態「0」を有し、当該仮想システム・オン・チップが当該リソースを使用できないようにしてもよい。リソースは、ビットマップ内の対応するビットを修正することにより、1つの仮想システム・オン・チップから別の仮想システム・オン・チップに「移され」てもよい。
【0096】
例えば、リソース識別子468bのビット472および468cのビット472の474はそれぞれ、1つの特定のリソースに関連付けられてもよい。特定のリソースは、ビット472および474のビット位置に関連付けてもよい。ビット472の値を「1」から「0」に変更することによってビット472を修正することにより、仮想システム・オン・チップ識別子466bに関連付けられた仮想システム・オン・チップに関するリソースアライメントを、当該仮想システム・オン・チップがもはや当該特定のリソースにアクセスできなくなるように変更してもよい。ビット474の値を「0」から「1」に変更することによってビット474を修正することにより、仮想システム・オン・チップ識別子466cに関連付けられた仮想システム・オン・チップに関するリソースアライメントを、当該仮想システム・オン・チップが当該特定のリソースにアクセス可能となるように、変更してもよい。このため、特定のリソースは、事実上(すなわち物理的にではなく)1つの仮想システム・オン・チップから別の仮想システム・オン・チップに「移され」たことになる。
【0097】
特定のリソースに関連付けられたリソース種類に基づいて、開示の実施形態は、特定のリソースに対応するリソースアライメントのリソースアライメント表示に微細な更新を提供してもよい。例えば、上述したリソース識別子468bのビット472およびリソース識別子468cのビット474を修正することは微細に修正を行うことを含んでもよく、これによってビット472および474の値に対する修正が、ビット472を含むリソース識別子468bおよびビット474を含むリソース識別子468cにそれぞれ関連付けられたVSoCに同時に認識できるようにしてもよい。微細な更新が、特定のリソースへの独占的アクセスをそれぞれ要求する異なるVSoCの間で起こり得る競合を防止し得る。
【0098】
開示の実施形態によれば、メモリ位置またはI/Oポートなどの非共有リソース種類のような、独占的に使用され得るリソースなどの任意の好適な種類の同一リソースに対応するリソースアライメント表示は、微細に更新されてもよい。その一方で、処理コアのような共有リソース種類などの任意の好適な共有リソース種類を有する同一リソースに対応するリソースアライメント表示は、個々に修正されてもよい。なお、共有および非共有のリソース種類の例は、リソースの種類のこれら具体例の共有または非共有に限定するものではない。例えば、いくつかの例では、I/Oポートが共有リソースであってもよく、処理コアが非共有リソースであってもよい。
【0099】
開示の実施形態によれば、仮想システム・オン・チップ識別子462のような仮想システム・オン・チップ識別子は、受信パケット(図示せず)からフィールドを抽出することに基づいて判断されてもよい。抽出されたフィールドは、5―タプルキーのようなキーを構成するために使用されてもよい。当該キーは、仮想システム・オン・チップ識別子にキーをマッピングするルックアップテーブル(LUT)(図示せず)に対して索引を付けるために使用され得る。このため、受信パケットは、当該キーについてLUT内で見つかった仮想システム・オン・チップ識別子462に基づく所与のVSoCに対して、スケジュールされてもよい。キーについてLUT内で見つかった仮想システム・オン・チップ識別子462を使用して、対応するリソース識別子464が所与のVSoCについて識別されてもよい。対応するリソース識別子464は、上述したように、いずれのリソースが所与のVSoCによって採用され得るかを示す。
【0100】
受信パケットを処理するために所与のVSoCが特定のリソースを採用している間、当該特定のリソースがもはや当該所与のVSoCにアラインされないように、少なくとも1つの事象がリソースアライメント408を修正させるかもしれない。このため、設定部216は、当該特定のリソースが当該所与のVSoCによって使用されなくなるまで、または予め決められた時間値が期限切れするまで、修正済リソースアライメント218を検出しコンフィグレーション更新221の適用を遅らせてもよい。このようにしなければ、当該所与のVSoCが当該特定のリソースを使用できなくなってしまう。
【0101】
図5は、本方法(500)の例示的な実施形態のフロー図である。本方法は、開始(502)し、プロセッサ装置の複数の仮想システム・オン・チップを、当該複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って当該複数のリソースのうちのリソースを利用するように設定してもよい(504)。本方法は、少なくとも1つの事象(508)に応答してリソースアライメントを動的に修正してもよく、本方法は、その後、例示的な本実施形態において終了(508)する。
【0102】
開示の実施形態によれば、セキュリティ・アプライアンス(図示せず)がプロセッサ装置102または202を含んでもよい。プロセッサ装置102または202はネットワークサービスプロセッサであってもよい。セキュリティ・アプライアンスは、1つのネットワークインタフェースで受信したパケットを別のネットワークインタフェースに切り替え得る独立型システムであってもよく、パケットを転送する前に受信パケットに対して複数のセキュリティ機能を実行してもよい。例えば、セキュリティ・アプライアンスは、広域ネットワーク(WAN)のような任意の好適なネットワークにおいて受信され得るパケットに対してセキュリティ処理を行い、その後、処理されたパケットをローカルエリアネットワーク(LAN)のような任意の好適なネットワークに転送するために、使用されてもよい。
【0103】
プロセッサ装置102または202は、受信パケットにカプセル化された開放型システム間相互接続(OSI)ネットワークL2~L7層プロトコルを処理するように構成されてもよい。当業者とっては周知であるように、OSI参照モデルは7つのネットワークプロトコル層(L1~L7)を定義する。物理層(L1)は、プロセッサ装置を伝送媒体に接続する実際の電気的および物理的インタフェースを記述する。データリンク層(L2)はデータフレーミングを行う。ネットワーク層(L3)はデータをパケットにフォーマット化する。トランスポート層(L4)はエンド・ツー・エンドトランスポートを担う。セッション層(L5)は、装置間の通信、例えば通信が半二重であるか全二重であるかを管理する。プレゼンテーション層(L6)は、データフォーマット化およびプレゼンテーション、例えば構文、制御コード、特殊図形、および文字セッなどを管理する。アプリケーション層(L7)は、ユーザ間の通信、例えばファイル転送や電子メールなどを許可する。
【0104】
プロセッサ装置102または202は、上位層ネットワークプロトコル、例えばL4~L7についての作業(例えばパケット処理動作)をスケジュール化しキューに入れ、受信パケットにおける上位層ネットワークプロトコルの処理がパケットをワイヤスピードで転送することを可能にする。パケットをワイヤスピードで転送するようにプロトコルを処理するため、プロセッサ装置102または202は、ネットワークデータ転送速度を低下させない。プロセッサ装置102または202は、物理ハードウエアインタフェースであり得るネットワークインタフェース(図示せず)からパケットを受信してもよく、かつ、受信したパケットにL2~L7ネットワークプロトコル処理を行ってもよい。その後、プロセッサ装置102または202は、処理済みパケットをネットワークインタフェースを介してネットワーク内の別のホップへ、最終宛先へ、または別のバスを介してホストプロセッサによるさらなる処理のために、転送してもよい。複数の仮想システム・オン・チップ104a~nまたは複数の仮想システム・オン・チップ204a~nなどの複数の仮想システム・オン・チップは、ネットワークセキュリティプロトコルの処理のためのアプリケーションを含んでもよい。ネットワークセキュリティプロトコルの例としては、ファイアウォール、アプリケーションファイアウォール、IPセキュリティ(IPSec)および/もしくはセキュアソケットレイヤ(SSL)を含む仮想プライベートネットワーク(VPN)、侵入検知システム(IDS)、およびアンチウイルス(AV)などの、任意の好適なネットワークプロトコルが挙げられる。
【0105】
複数の仮想システム・オン・チップ104a~nまたは204a~nは、複数の仮想システム・オン・チップ104a~nまたは204a~nにアラインされた複数の処理コアを用いて高アプリケーション性能を発揮してもよい。処理コアはそれぞれ、データプレーン動作、コントロールプレーン動作、およびこれらの組合せの実行に専用であってもよい。データプレーン動作は、パケットを転送するためのパケット動作を含んでもよい。コントロールプレーン動作は、複雑な上位層プロトコルの一部を処理することを含んでもよい。複雑な上位層プロトコルの例としては、インターネットプロトコルセキュリティ(IPSec)、伝送制御プロトコル(TCP)、およびセキュアソケットレイヤ(SSL)などの、任意の好適な上位層プロトコルが挙げられる。データプレーン動作が、これら複雑な上位層プロトコルの他の部分を処理することを含んでもよい。
【0106】
開示の実施形態によれば、複数の処理コア、メモリ、入出力ポートなどのリソースは、ランタイムの間に1つ以上の仮想システム・オン・チップに動的に割当てられてもよい。リソース割当ては、上述したように、少なくとも1つの事象に基づいて2つ以上の仮想システム・オン・チップの間で動的に再アラインされてもよい。
【0107】
複数の処理コアは、データプレーンアプリケーションまたはコントロールプレーンアプリケーションをサポートする仮想システム・オン・チップに割当てられてもよい。リソースは、データプレーンに割り当てられたこれら仮想システム・オン・チップの間で再アラインされてもよい。例えば、第1のリソースセットが、データプレーン使用に利用可能であると特定されて、例えばIDSまたはAVのタイプのVSoCの転送のような、1つのデータプレーンVSoCから別のデータプレーンVSoCに動的に割り当てられてもよい。同様に、第2のリソースセットがコントロールプレーン使用に利用可能であると特定されて、当該第2のリソースセットが1つのコントロールプレーンVSoCから別のコントロールプレーンVSoCに動的に割り当てられてもよい。開示の実施形態によれば、リソースはVSoCに動的にアラインされてもよい。
【0108】
図6は、本発明の様々な実施形態が実装され得るコンピュータ600の内部構造の例のブロック図である。コンピュータ600はシステムバス602を含み、バスは、コンピュータまたは処理システムの構成部品の間におけるデータ転送のために使用される1組のハードウエア線である。システムバス602は、実際のところ共有電線管である。共有電線管は、コンピュータシステムの異なる要素(例えば、プロセッサ、ディスク記憶装置、メモリ、入出力ポート、ネットワークポートなど)を接続し、コンピュータシステムの異なる要素間での情報の転送を可能にする。システムバス602には、様々な入出力装置(例えば、キーボード、マウス、ディスプレイ、プリンタ、スピーカなど)をコンピュータ600に接続するためのI/O装置インタフェース604が結合されている。ネットワークインタフェース606によって、コンピュータ600が、ネットワークに取付けられた様々な他の装置に接続できる。メモリ608は、本発明の実施形態を実現するために使用され得るコンピュータソフトウエア命令610およびデータ612のための揮発性記憶装置を提供する。ディスク記憶装置614は、本発明の実施形態を実装するために使用され得るコンピュータソフトウエア命令610およびデータ612のための不揮発性記憶装置を提供する。中央処理装置618もまたシステムバス602に結合されており、コンピュータ命令の実行に備える。
【0109】
本明細書に開示するさらなる例示的な実施形態は、コンピュータプログラム製品を使用して構成されてもよい。例えば、制御は、例示的な実施形態を実装するためのソフトウエア内にプログラムされてもよい。さらなる例示的な実施形態は、プロセッサによって実行され得る命令であって、読み込まれて実行されるとプロセッサに本明細書で記載した方法を完了させる命令を含む非一時的コンピュータ可読媒体を含んでもよい。なお、本明細書で開示したブロック図およびフロー図のリソースアライン部110もしくは210、設定部216、および監視部226などの任意の要素のような、ブロック図およびフロー図の各要素は、ソフトウエア、ハードウエア(2010年4月28日出願の米国特許出願第12/769,463号(米国特許第8,826,271号、その全教示が参照により本明細書に援用される)に開示された1つ以上の回路装置および先述した
図6またはその等価物など)、ファームウエア、これらの組合せ、または将来確定されるその他の同様の実現物において実装されてもよい。さらに、本明細書で説明したブロック図およびフロー図の各要素は、ソフトウエア、ハードウエア、またはファームウエアにおいて組み合わされてもよく、分割されてもよい。ソフトウエアに実装する場合には、ソフトウエアは本明細書で開示した例示的な実施形態をサポート可能な任意の言語で書かれていてもよい。ソフトウエアは、例えばランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、コンパクトディスク読み取り専用メモリ(CD―ROM)等、任意の形態のコンピュータ可読媒体に記憶されてもよい。動作においては、汎用もしくは特定用途向けプロセッサまたは処理コアが、当該技術分野で周知のやり方でソフトウエアをロードし実行する。さらに、ブロック図およびフロー図は、より多くのまたは少ない数の要素を含んでよく、それらの要素は、異なる配置または向きであってもよく、異なるように表現されてもよい。なお、本明細書で開示した実施形態の実行を説明する、ブロック図、フロー図および/またはネットワーク図、ならびにブロック図およびフロー図の数が実装時に決定されてもよい。
【0110】
本発明をその例示的な実施形態を参照して具体的に示して説明したが、当業者であれば、添付の特許請求の範囲に包含される本発明の範囲から逸脱することなく、形式および詳細の様々な変更が可能であることを理解するであろう。
なお、本発明は、実施の態様として以下の内容を含む。
〔態様1〕
複数の仮想システム・オン・チップであって、当該複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように構成された、複数の仮想システム・オン・チップと、
少なくとも1つの事象に応答して前記リソースアライメントを動的に修正するように構成されたリソースアライン部とを備えたプロセッサ装置。
〔態様2〕
態様1に記載のプロセッサ装置において、前記リソースアライン部が、さらに、前記少なくとも1つの事象に応答して当該プロセッサ装置のスループットを達成するために、前記リソースアライメントを動的に修正するように構成されている、プロセッサ装置。
〔態様3〕
態様1に記載のプロセッサ装置において、さらに、
前記リソースアライン部に動作可能に結合された設定部であって、前記リソースアライメントに対する少なくとも1つの修正に応答して、修正済の前記リソースアライメントを動的に適用するように構成された設定部を備えた、プロセッサ装置。
〔態様4〕
態様3に記載のプロセッサ装置において、前記設定部が、さらに、前記リソースアライン部が前記リソースアライメントを修正したことを検出するように構成されている、プロセッサ装置。
〔態様5〕
態様3に記載のプロセッサ装置において、前記設定部が、さらに、前記リソースアライン部が前記リソースアライメントを修正したことを示す通信を前記リソースアライン部から受信するように構成されている、プロセッサ装置。
〔態様6〕
態様3に記載のプロセッサ装置において、修正済の前記リソースアライメントを動的に適用するために、前記設定部が、修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新するように構成されている、プロセッサ装置。
〔態様7〕
態様3に記載のプロセッサ装置において、前記少なくとも1つの修正が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含み、
前記設定部が、さらに、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づいて、または、当該使用に適用された予め決められた時間値の期限切れに基づいて、前記少なくとも1つの修正を適用するように構成されている、
プロセッサ装置。
〔態様8〕
態様1に記載のプロセッサ装置において、さらに、
前記リソースアライン部に動作可能に結合された監視部を備え、
前記監視部が、前記少なくとも1つの事象の少なくとも1つのインスタンスを監視するように構成され、かつ、前記リソースアライメントを動的に修正するように前記リソースアライン部をトリガするために、前記少なくとも1つの事象の前記少なくとも1つのインスタンスを前記リソースアライン部に伝達するように構成されている、プロセッサ装置。
〔態様9〕
態様8に記載のプロセッサ装置において、前記少なくとも1つの事象の前記少なくとも1つのインスタンスを監視するために、前記少なくとも1つの監視部が、前記複数のリソースのうちの少なくとも1つのリソースの状態、または前記複数の仮想システム・オン・チップの少なくとも1つの仮想システム状態を監視するように構成されている、
プロセッサ装置。
〔態様10〕
態様9に記載のプロセッサ装置において、前記複数のリソースのうちの前記少なくとも1つのリソースの前記状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、プロセッサ装置。
〔態様11〕
態様9に記載のプロセッサ装置において、前記複数の仮想システム・オン・チップの前記少なくとも1つの仮想システム状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、プロセッサ装置。
〔態様12〕
態様1に記載のプロセッサ装置において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正するために、前記リソースアライン部が、さらに、前記少なくとも1つの事象に応答して前記複数のマッピングのうちの少なくとも1つのマッピングを動的に修正するように構成されている、プロセッサ装置。
〔態様13〕
態様12に記載のプロセッサ装置において、
前記少なくとも1つのマッピングが、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインし、
前記少なくとも1つのマッピングを動的に修正することが、前記所与の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも1つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも1つの他の仮想システム・オン・チップに前記所与のリソースをアラインすることを含む、プロセッサ装置。
〔態様14〕
態様1に記載のプロセッサ装置において、前記リソースアライメントを動的に修正するために、前記リソースアライン部が、さらに、少なくとも1つのマッピングを前記リソースアライメントに追加するように構成され、前記少なくとも1つのマッピングが、前記複数の仮想システム・オン・チップのうちの1つの仮想システム・オン・チップに、前記複数のリソースのうちの1つのリソースをアラインする、プロセッサ装置。
〔態様15〕
態様1に記載のプロセッサ装置において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正するために、前記複数のマッピングから少なくとも1つのマッピングを削除することを含む、プロセッサ装置。
〔態様16〕
態様1に記載のプロセッサ装置において、前記リソースアライメントが、前記複数の仮想システム・オン・チップのうちの2つ以上の仮想システム・オン・チップが前記複数のリソースのうちの所与のリソースを共有できるようにする、プロセッサ装置。
〔態様17〕
態様16に記載のプロセッサ装置において、前記複数の仮想システム・オン・チップのうちの前記2つ以上の仮想システム・オン・チップそれぞれが、前記所与のリソースに関して前記仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用するように構成されている、プロセッサ装置。
〔態様18〕
態様1に記載のプロセッサ装置において、前記リソースアライメントが、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが所与のリソースを独占的に使用できるようにする、プロセッサ装置。
〔態様19〕
態様1に記載のプロセッサ装置において、前記少なくとも1つの事象が、当該プロセッサ装置の外部で生じる外部事象を含む、プロセッサ装置。
〔態様20〕
態様1に記載のプロセッサ装置において、前記少なくとも1つの事象が、時刻に基づく事前スケジュールされた事象を含む、プロセッサ装置。
〔態様21〕
態様1に記載のプロセッサ装置において、前記少なくとも1つの事象が、前記複数のリソースのうちの所与のリソースの誤動作を示す故障事象を含む、プロセッサ装置。
〔態様22〕
態様1に記載のプロセッサ装置において、前記少なくとも1つの事象が、前記複数のリソースのうちの少なくとも1つのリソースがオーバサブスクリプションであることを示すか、または、前記複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム・オン・チップがオーバサブスクリプションであることを示す、オーバサブスクリプション事象を含む、プロセッサ装置。
〔態様23〕
態様1に記載のプロセッサ装置において、前記少なくとも1つの事象が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、前記複数のリソースのうちの所与のリソースが、前記所与の仮想システム・オン・チップによる使用率であって、閾値未満である使用率を有することを示すアイドル事象を含む、プロセッサ装置。
〔態様24〕
態様1に記載のプロセッサ装置において、前記リソースアライメントがスループットの損失を防止するように動的に修正され、前記スループットの損失は、防止されなければ前記少なくとも1つの事象によってもたらされる、プロセッサ装置。
〔態様25〕
プロセッサ装置の複数の仮想システム・オン・チップを設定する工程であって、前記複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように設定する工程と、
少なくとも1つの事象に応答して前記リソースアライメントを動的に修正する工程とを備えた方法。
〔態様26〕
態様25に記載の方法において、前記少なくとも1つの事象に応答して前記リソースアライメントを動的に修正する前記工程が、前記少なくとも1つの事象に応答して前記プロセッサ装置のスループットを達成する、方法。
〔態様27〕
態様25に記載の方法において、さらに、
前記リソースアライメントに対する少なくとも1つの修正に応答して、修正済の前記リソースアライメントを動的に適用する工程を備えた、方法。
〔態様28〕
態様27に記載の方法において、さらに、
前記リソースアライメントに対する前記少なくとも1つの修正を検出する工程を備えた、方法。
〔態様29〕
態様27に記載の方法において、さらに、
前記リソースアライメントに対する前記少なくとも1つの修正の通信を受信する工程を備えた、方法。
〔態様30〕
態様27に記載の方法において、さらに、
修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新する工程を備えた、方法。
〔態様31〕
態様27に記載の方法において、前記少なくとも1つの修正が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含み、前記少なくとも1つの修正を適用することが、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づくか、または、当該使用に適用された予め決められた時間値の期限切れに基づく、方法。
〔態様32〕
態様25に記載の方法において、さらに、
前記少なくとも1つの事象の少なくとも1つのインスタンスを監視する工程と、
前記リソースアライメントの動的修正をトリガするために、前記少なくとも1つの事象の前記少なくとも1つのインスタンスを伝達する工程とを備えた、方法。
〔態様33〕
態様32に記載の方法において、前記監視する工程が、前記複数のリソースのうちの少なくとも1つのリソースの状態、または、前記複数の仮想システム・オン・チップの少なくとも1つの仮想システム・オン・チップ状態を監視する工程を含む、方法。
〔態様34〕
態様33に記載の方法において、前記複数のリソースのうちの前記少なくとも1つのリソースの前記状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、方法。
〔態様35〕
態様33に記載の方法において、前記複数の仮想システム・オン・チップの前記少なくとも1つの仮想システム状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、方法。
〔態様36〕
態様25に記載の方法において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正する前記工程が、前記少なくとも1つの事象に応答して前記複数のマッピングのうちの少なくとも1つのマッピングを動的に修正する工程を含む、方法。
〔態様37〕
態様36に記載の方法において、
前記少なくとも1つのマッピングが、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインし、
前記少なくとも1つのマッピングを動的に修正する前記工程が、前記所与の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも1つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも1つの他の仮想システム・オン・チップに前記所与のリソースをアラインする工程を含む、方法。
〔態様38〕
態様25に記載の方法において、前記リソースアライメントを動的に修正する前記工程が、少なくとも1つのマッピングを前記リソースアライメントに追加する工程を含み、前記少なくとも1つのマッピングが、前記複数の仮想システム・オン・チップのうちの1つの仮想システム・オン・チップに、前記複数のリソースのうちの1つのリソースをアラインする、方法。
〔態様39〕
態様25に記載の方法において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正する前記工程が、前記複数のマッピングから少なくとも1つのマッピングを削除する工程を含む、方法。
〔態様40〕
態様25に記載の方法において、さらに、
前記複数の仮想システム・オン・チップのうちの2つ以上の仮想システム・オン・チップが、前記リソースアライメントに基づいて、前記複数のリソースのうちの所与のリソースを共有できるようにする工程を備えた、方法。
〔態様41〕
態様40に記載の方法において、
前記2つ以上の仮想システム・オン・チップが前記所与のリソースを共有できるようにする前記工程が、前記所与のリソースに関して前記仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用するように前記2つ以上の仮想システム・オン・チップを構成する工程を含む、方法。
〔態様42〕
態様25に記載の方法において、さらに、
前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが、前記リソースアライメントに基づいて、所与のリソースを独占的に使用できるようにする工程を備えた、方法。
〔態様43〕
態様25に記載の方法において、前記少なくとも1つの事象が、プロセッサ装置の外部で生じる外部事象を含む、方法。
〔態様44〕
態様25に記載の方法において、前記少なくとも1つの事象が、時刻に基づく事前スケジュールされた事象を含む、方法。
〔態様45〕
態様25に記載の方法において、前記少なくとも1つの事象が、前記複数のリソースのうちの所与のリソースの誤動作を示す故障事象を含む、方法。
〔態様46〕
態様25に記載の方法において、前記少なくとも1つの事象が、前記複数のリソースのうちの少なくとも1つのリソースがオーバサブスクリプションであることを示すか、または、前記複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム・オン・チップがオーバサブスクリプションであることを示す、オーバサブスクリプション事象を含む、方法。
〔態様47〕
態様25に記載の方法において、前記少なくとも1つの事象が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、前記複数のリソースのうちの所与のリソースが、前記所与の仮想システム・オン・チップによる使用率であって、閾値未満の使用率を有することを示すアイドル事象を含む、方法。
〔態様48〕
態様25に記載の方法において、前記リソースアライメントを動的に修正する前記工程がスループットの損失を防止し、前記スループットの損失は、防止されなければ前記少なくとも1つの事象によってもたらされる、方法。
〔態様49〕
符号化した一連の命令を有する非一時的コンピュータ可読媒体であって、プロセッサ装置によってロードされ実行されると、前記一連の命令が前記プロセッサ装置に、
プロセッサ装置の複数の仮想システム・オン・チップを設定する手順であって、前記複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように設定する手順と、
少なくとも1つの事象に応答して前記リソースアライメントを動的に修正する手順とを実行させる非一時的コンピュータ可読媒体。
〔態様50〕
態様49に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの事象に応答して前記リソースアライメントを動的に修正する前記手順が、前記少なくとも1つの事象に応答して前記プロセッサ装置のスループットを達成する、非一時的コンピュータ可読媒体。
〔態様51〕
態様49に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記リソースアライメントに対する少なくとも1つの修正に応答して、修正済の前記リソースアライメントを動的に適用する手順を実行させる、非一時的コンピュータ可読媒体。
〔態様52〕
態様51に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記リソースアライメントに対する前記少なくとも1つの修正を検出する手順を実行させる、非一時的コンピュータ可読媒体。
〔態様53〕
態様51に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記リソースアライメントに対する前記少なくとも1つの修正の通信を受信する手順を実行させる、非一時的コンピュータ可読媒体。
〔態様54〕
態様51に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新する手順を実行させる、非一時的コンピュータ可読媒体。
〔態様55〕
態様51に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの修正が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含み、前記少なくとも1つの修正を適用することが、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づくか、または、当該使用に適用された予め決められた時間値の期限切れに基づく、非一時的コンピュータ可読媒体。
〔態様56〕
態様49に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記少なくとも1つの事象の少なくとも1つのインスタンスを監視する手順と、
前記リソースアライメントの動的修正をトリガするために、前記少なくとも1つの事象の前記少なくとも1つのインスタンスを伝達する手順とを実行させる、非一時的コンピュータ可読媒体。
〔態様57〕
態様56に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数のリソースのうちの少なくとも1つのリソースの状態、または、前記複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム・オン・チップ状態を監視する手順を実行させる、非一時的コンピュータ可読媒体。
〔態様58〕
態様57に記載の非一時的コンピュータ可読媒体において、前記複数のリソースのうちの前記少なくとも1つのリソースの前記状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、非一時的コンピュータ可読媒体。
〔態様59〕
態様57に記載の非一時的コンピュータ可読媒体において、前記複数の仮想システム・オン・チップの前記仮想システム状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、非一時的コンピュータ可読媒体。
〔態様60〕
態様49に記載の非一時的コンピュータ可読媒体において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記一連の命令が前記プロセッサ装置に、さらに、前記少なくとも1つの事象に応答して前記複数のマッピングのうちの少なくとも1つのマッピングを動的に修正する手順を実行させる、非一時的コンピュータ可読媒体。
〔態様61〕
態様60に記載の非一時的コンピュータ可読媒体において、
前記少なくとも1つのマッピングが、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインし、
前記一連の命令が前記プロセッサ装置に、さらに、前記所与の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも1つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも1つの他の仮想システム・オン・チップに前記所与のリソースをアラインする手順を実行させる、非一時的コンピュータ可読媒体。
〔態様62〕
態様49に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、少なくとも1つのマッピングを前記リソースアライメントに追加する手順を実行させ、前記少なくとも1つのマッピングが、前記複数の仮想システム・オン・チップのうちの1つの仮想システム・オン・チップに、前記複数のリソースのうちの1つのリソースをアラインする、非一時的コンピュータ可読媒体。
〔態様63〕
態様49に記載の非一時的コンピュータ可読媒体において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記一連の命令が前記プロセッサ装置に、さらに、前記複数のマッピングから少なくとも1つのマッピングを削除する手順を実行させる、非一時的コンピュータ可読媒体。
〔態様64〕
態様49に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数の仮想システム・オン・チップのうちの2つ以上の仮想システム・オン・チップが、前記リソースアライメントに基づいて、前記複数のリソースのうちの所与のリソースを共有できるようにする手順を実行させる、非一時的コンピュータ可読媒体。
〔態様65〕
態様64に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数の仮想システム・オン・チップのうちの2つ以上の仮想システム・オン・チップが、前記所与のリソースに関して前記仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用する手順を実行させる、非一時的コンピュータ可読媒体。
〔態様66〕
態様49に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが、前記リソースアライメントに基づいて、所与のリソースを独占的に使用できるようにする手順を実行させる、非一時的コンピュータ可読媒体。
〔態様67〕
態様49に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの事象が、プロセッサ装置の外部で生じる外部事象を含む、非一時的コンピュータ可読媒体。
〔態様68〕
態様49に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの事象が、時刻に基づく事前スケジュールされた事象を含む、非一時的コンピュータ可読媒体。
〔態様69〕
態様49に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの事象が、前記複数のリソースのうちの所与のリソースの誤動作を示す故障事象を含む、非一時的コンピュータ可読媒体。
〔態様70〕
態様49に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの事象が、前記複数のリソースのうちの少なくとも1つのリソースがオーバサブスクリプションであることを示すか、または、前記複数の仮想システム・オン・チップのうちの少なくとも1つの仮想システム・オン・チップがオーバサブスクリプションであることを示す、オーバサブスクリプション事象を含む、非一時的コンピュータ可読媒体。
〔態様71〕
態様49に記載の非一時的コンピュータ可読媒体において、前記少なくとも1つの事象が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、前記複数のリソースのうちの所与のリソースが、前記所与の仮想システム・オン・チップによる使用率であって、閾値未満の使用率を有することを示すアイドル事象を含む、非一時的コンピュータ可読媒体。
〔態様72〕
態様49に記載の非一時的コンピュータ可読媒体において、前記リソースアライメントを動的に修正する前記手順がスループットの損失を防止し、前記スループットの損失は、防止されなければ前記少なくとも1つの事象によってもたらされる、非一時的コンピュータ可読媒体。