(57)【要約】【課題】仮想マシンが物理マシンの基本リソースを共有できるプロセッサ装置を提供する。【解決手段】複数の仮想システム・オン・チップ２０４ａ〜２０４ｎであって、複数の仮想システム・オン・チップ２０４ａ〜２０４ｎと複数のリソース２０６ａ〜２０６ｎとの間のリソースアライメント２０８に従って複数のリソース２０６ａ〜２０６ｎのうちのリソースを利用するように構成された、複数の仮想システム・オン・チップ２０４ａ〜２０４ｎと、少なくとも１つの事象に応答してリソースアライメント２０８を動的に修正するように構成されたリソースアライン部２０１とを備える。【選択図】図２
2017199369.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想システム・オン・チップであって、当該複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように構成された、複数の仮想システム・オン・チップと、
少なくとも１つの事象に応答して前記リソースアライメントを動的に修正するように構成されたリソースアライン部とを備えたプロセッサ装置。
【請求項２】
請求項１に記載のプロセッサ装置において、前記リソースアライン部が、さらに、前記少なくとも１つの事象に応答して当該プロセッサ装置のスループットを達成するために、前記リソースアライメントを動的に修正するように構成されている、プロセッサ装置。
【請求項３】
請求項１に記載のプロセッサ装置において、さらに、
前記リソースアライン部に動作可能に結合された設定部であって、前記リソースアライメントに対する少なくとも１つの修正に応答して、修正済の前記リソースアライメントを動的に適用するように構成された設定部を備えた、プロセッサ装置。
【請求項４】
請求項３に記載のプロセッサ装置において、前記設定部が、さらに、前記リソースアライン部が前記リソースアライメントを修正したことを検出するように構成されている、プロセッサ装置。
【請求項５】
請求項３に記載のプロセッサ装置において、前記設定部が、さらに、前記リソースアライン部が前記リソースアライメントを修正したことを示す通信を前記リソースアライン部から受信するように構成されている、プロセッサ装置。
【請求項６】
請求項３に記載のプロセッサ装置において、修正済の前記リソースアライメントを動的に適用するために、前記設定部が、修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新するように構成されている、プロセッサ装置。
【請求項７】
請求項３に記載のプロセッサ装置において、前記少なくとも１つの修正が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含み、
前記設定部が、さらに、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づいて、または、当該使用に適用された予め決められた時間値の期限切れに基づいて、前記少なくとも１つの修正を適用するように構成されている、
プロセッサ装置。
【請求項８】
請求項１に記載のプロセッサ装置において、さらに、
前記リソースアライン部に動作可能に結合された監視部を備え、
前記監視部が、前記少なくとも１つの事象の少なくとも１つのインスタンスを監視するように構成され、かつ、前記リソースアライメントを動的に修正するように前記リソースアライン部をトリガするために、前記少なくとも１つの事象の前記少なくとも１つのインスタンスを前記リソースアライン部に伝達するように構成されている、プロセッサ装置。
【請求項９】
請求項８に記載のプロセッサ装置において、前記少なくとも１つの事象の前記少なくとも１つのインスタンスを監視するために、前記少なくとも１つの監視部が、前記複数のリソースのうちの少なくとも１つのリソースの状態、または前記複数の仮想システム・オン・チップの少なくとも１つの仮想システム状態を監視するように構成されている、
プロセッサ装置。
【請求項１０】
請求項９に記載のプロセッサ装置において、前記複数のリソースのうちの前記少なくとも１つのリソースの前記状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、プロセッサ装置。
【請求項１１】
請求項９に記載のプロセッサ装置において、前記複数の仮想システム・オン・チップの前記少なくとも１つの仮想システム状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、プロセッサ装置。
【請求項１２】
請求項１に記載のプロセッサ装置において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正するために、前記リソースアライン部が、さらに、前記少なくとも１つの事象に応答して前記複数のマッピングのうちの少なくとも１つのマッピングを動的に修正するように構成されている、プロセッサ装置。
【請求項１３】
請求項１２に記載のプロセッサ装置において、
前記少なくとも１つのマッピングが、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインし、
前記少なくとも１つのマッピングを動的に修正することが、前記所与の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも１つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも１つの他の仮想システム・オン・チップに前記所与のリソースをアラインすることを含む、プロセッサ装置。
【請求項１４】
請求項１に記載のプロセッサ装置において、前記リソースアライメントを動的に修正するために、前記リソースアライン部が、さらに、少なくとも１つのマッピングを前記リソースアライメントに追加するように構成され、前記少なくとも１つのマッピングが、前記複数の仮想システム・オン・チップのうちの１つの仮想システム・オン・チップに、前記複数のリソースのうちの１つのリソースをアラインする、プロセッサ装置。
【請求項１５】
請求項１に記載のプロセッサ装置において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正するために、前記複数のマッピングから少なくとも１つのマッピングを削除することを含む、プロセッサ装置。
【請求項１６】
請求項１に記載のプロセッサ装置において、前記リソースアライメントが、前記複数の仮想システム・オン・チップのうちの２つ以上の仮想システム・オン・チップが前記複数のリソースのうちの所与のリソースを共有できるようにする、プロセッサ装置。
【請求項１７】
請求項１６に記載のプロセッサ装置において、前記複数の仮想システム・オン・チップのうちの前記２つ以上の仮想システム・オン・チップそれぞれが、前記所与のリソースに関して前記仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用するように構成されている、プロセッサ装置。
【請求項１８】
請求項１に記載のプロセッサ装置において、前記リソースアライメントが、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが所与のリソースを独占的に使用できるようにする、プロセッサ装置。
【請求項１９】
請求項１に記載のプロセッサ装置において、前記少なくとも１つの事象が、当該プロセッサ装置の外部で生じる外部事象を含む、プロセッサ装置。
【請求項２０】
請求項１に記載のプロセッサ装置において、前記少なくとも１つの事象が、時刻に基づく事前スケジュールされた事象を含む、プロセッサ装置。
【請求項２１】
請求項１に記載のプロセッサ装置において、前記少なくとも１つの事象が、前記複数のリソースのうちの所与のリソースの誤動作を示す故障事象を含む、プロセッサ装置。
【請求項２２】
請求項１に記載のプロセッサ装置において、前記少なくとも１つの事象が、前記複数のリソースのうちの少なくとも１つのリソースがオーバサブスクリプションであることを示すか、または、前記複数の仮想システム・オン・チップのうちの少なくとも１つの仮想システム・オン・チップがオーバサブスクリプションであることを示す、オーバサブスクリプション事象を含む、プロセッサ装置。
【請求項２３】
請求項１に記載のプロセッサ装置において、前記少なくとも１つの事象が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、前記複数のリソースのうちの所与のリソースが、前記所与の仮想システム・オン・チップによる使用率であって、閾値未満である使用率を有することを示すアイドル事象を含む、プロセッサ装置。
【請求項２４】
請求項１に記載のプロセッサ装置において、前記リソースアライメントがスループットの損失を防止するように動的に修正され、前記スループットの損失は、防止されなければ前記少なくとも１つの事象によってもたらされる、プロセッサ装置。
【請求項２５】
プロセッサ装置の複数の仮想システム・オン・チップを設定する工程であって、前記複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように設定する工程と、
少なくとも１つの事象に応答して前記リソースアライメントを動的に修正する工程とを備えた方法。
【請求項２６】
請求項２５に記載の方法において、前記少なくとも１つの事象に応答して前記リソースアライメントを動的に修正する前記工程が、前記少なくとも１つの事象に応答して前記プロセッサ装置のスループットを達成する、方法。
【請求項２７】
請求項２５に記載の方法において、さらに、
前記リソースアライメントに対する少なくとも１つの修正に応答して、修正済の前記リソースアライメントを動的に適用する工程を備えた、方法。
【請求項２８】
請求項２７に記載の方法において、さらに、
前記リソースアライメントに対する前記少なくとも１つの修正を検出する工程を備えた、方法。
【請求項２９】
請求項２７に記載の方法において、さらに、
前記リソースアライメントに対する前記少なくとも１つの修正の通信を受信する工程を備えた、方法。
【請求項３０】
請求項２７に記載の方法において、さらに、
修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新する工程を備えた、方法。
【請求項３１】
請求項２７に記載の方法において、前記少なくとも１つの修正が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含み、前記少なくとも１つの修正を適用することが、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づくか、または、当該使用に適用された予め決められた時間値の期限切れに基づく、方法。
【請求項３２】
請求項２５に記載の方法において、さらに、
前記少なくとも１つの事象の少なくとも１つのインスタンスを監視する工程と、
前記リソースアライメントの動的修正をトリガするために、前記少なくとも１つの事象の前記少なくとも１つのインスタンスを伝達する工程とを備えた、方法。
【請求項３３】
請求項３２に記載の方法において、前記監視する工程が、前記複数のリソースのうちの少なくとも１つのリソースの状態、または、前記複数の仮想システム・オン・チップの少なくとも１つの仮想システム・オン・チップ状態を監視する工程を含む、方法。
【請求項３４】
請求項３３に記載の方法において、前記複数のリソースのうちの前記少なくとも１つのリソースの前記状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、方法。
【請求項３５】
請求項３３に記載の方法において、前記複数の仮想システム・オン・チップの前記少なくとも１つの仮想システム状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、方法。
【請求項３６】
請求項２５に記載の方法において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正する前記工程が、前記少なくとも１つの事象に応答して前記複数のマッピングのうちの少なくとも１つのマッピングを動的に修正する工程を含む、方法。
【請求項３７】
請求項３６に記載の方法において、
前記少なくとも１つのマッピングが、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインし、
前記少なくとも１つのマッピングを動的に修正する前記工程が、前記所与の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも１つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも１つの他の仮想システム・オン・チップに前記所与のリソースをアラインする工程を含む、方法。
【請求項３８】
請求項２５に記載の方法において、前記リソースアライメントを動的に修正する前記工程が、少なくとも１つのマッピングを前記リソースアライメントに追加する工程を含み、前記少なくとも１つのマッピングが、前記複数の仮想システム・オン・チップのうちの１つの仮想システム・オン・チップに、前記複数のリソースのうちの１つのリソースをアラインする、方法。
【請求項３９】
請求項２５に記載の方法において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記リソースアライメントを動的に修正する前記工程が、前記複数のマッピングから少なくとも１つのマッピングを削除する工程を含む、方法。
【請求項４０】
請求項２５に記載の方法において、さらに、
前記複数の仮想システム・オン・チップのうちの２つ以上の仮想システム・オン・チップが、前記リソースアライメントに基づいて、前記複数のリソースのうちの所与のリソースを共有できるようにする工程を備えた、方法。
【請求項４１】
請求項４０に記載の方法において、
前記２つ以上の仮想システム・オン・チップが前記所与のリソースを共有できるようにする前記工程が、前記所与のリソースに関して前記仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用するように前記２つ以上の仮想システム・オン・チップを構成する工程を含む、方法。
【請求項４２】
請求項２５に記載の方法において、さらに、
前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが、前記リソースアライメントに基づいて、所与のリソースを独占的に使用できるようにする工程を備えた、方法。
【請求項４３】
請求項２５に記載の方法において、前記少なくとも１つの事象が、プロセッサ装置の外部で生じる外部事象を含む、方法。
【請求項４４】
請求項２５に記載の方法において、前記少なくとも１つの事象が、時刻に基づく事前スケジュールされた事象を含む、方法。
【請求項４５】
請求項２５に記載の方法において、前記少なくとも１つの事象が、前記複数のリソースのうちの所与のリソースの誤動作を示す故障事象を含む、方法。
【請求項４６】
請求項２５に記載の方法において、前記少なくとも１つの事象が、前記複数のリソースのうちの少なくとも１つのリソースがオーバサブスクリプションであることを示すか、または、前記複数の仮想システム・オン・チップのうちの少なくとも１つの仮想システム・オン・チップがオーバサブスクリプションであることを示す、オーバサブスクリプション事象を含む、方法。
【請求項４７】
請求項２５に記載の方法において、前記少なくとも１つの事象が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、前記複数のリソースのうちの所与のリソースが、前記所与の仮想システム・オン・チップによる使用率であって、閾値未満の使用率を有することを示すアイドル事象を含む、方法。
【請求項４８】
請求項２５に記載の方法において、前記リソースアライメントを動的に修正する前記工程がスループットの損失を防止し、前記スループットの損失は、防止されなければ前記少なくとも１つの事象によってもたらされる、方法。
【請求項４９】
符号化した一連の命令を有する非一時的コンピュータ可読媒体であって、プロセッサ装置によってロードされ実行されると、前記一連の命令が前記プロセッサ装置に、
プロセッサ装置の複数の仮想システム・オン・チップを設定する手順であって、前記複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように設定する手順と、
少なくとも１つの事象に応答して前記リソースアライメントを動的に修正する手順とを実行させる非一時的コンピュータ可読媒体。
【請求項５０】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記少なくとも１つの事象に応答して前記リソースアライメントを動的に修正する前記手順が、前記少なくとも１つの事象に応答して前記プロセッサ装置のスループットを達成する、非一時的コンピュータ可読媒体。
【請求項５１】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記リソースアライメントに対する少なくとも１つの修正に応答して、修正済の前記リソースアライメントを動的に適用する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項５２】
請求項５１に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記リソースアライメントに対する前記少なくとも１つの修正を検出する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項５３】
請求項５１に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記リソースアライメントに対する前記少なくとも１つの修正の通信を受信する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項５４】
請求項５１に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項５５】
請求項５１に記載の非一時的コンピュータ可読媒体において、前記少なくとも１つの修正が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含み、前記少なくとも１つの修正を適用することが、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づくか、または、当該使用に適用された予め決められた時間値の期限切れに基づく、非一時的コンピュータ可読媒体。
【請求項５６】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記少なくとも１つの事象の少なくとも１つのインスタンスを監視する手順と、
前記リソースアライメントの動的修正をトリガするために、前記少なくとも１つの事象の前記少なくとも１つのインスタンスを伝達する手順とを実行させる、非一時的コンピュータ可読媒体。
【請求項５７】
請求項５６に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数のリソースのうちの少なくとも１つのリソースの状態、または、前記複数の仮想システム・オン・チップのうちの少なくとも１つの仮想システム・オン・チップ状態を監視する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項５８】
請求項５７に記載の非一時的コンピュータ可読媒体において、前記複数のリソースのうちの前記少なくとも１つのリソースの前記状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、非一時的コンピュータ可読媒体。
【請求項５９】
請求項５７に記載の非一時的コンピュータ可読媒体において、前記複数の仮想システム・オン・チップの前記仮想システム状態が、故障状態、利用状態、または故障状態と利用状態の組合せである、非一時的コンピュータ可読媒体。
【請求項６０】
請求項４９に記載の非一時的コンピュータ可読媒体において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記一連の命令が前記プロセッサ装置に、さらに、前記少なくとも１つの事象に応答して前記複数のマッピングのうちの少なくとも１つのマッピングを動的に修正する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項６１】
請求項６０に記載の非一時的コンピュータ可読媒体において、
前記少なくとも１つのマッピングが、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインし、
前記一連の命令が前記プロセッサ装置に、さらに、前記所与の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも１つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも１つの他の仮想システム・オン・チップに前記所与のリソースをアラインする手順を実行させる、非一時的コンピュータ可読媒体。
【請求項６２】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、少なくとも１つのマッピングを前記リソースアライメントに追加する手順を実行させ、前記少なくとも１つのマッピングが、前記複数の仮想システム・オン・チップのうちの１つの仮想システム・オン・チップに、前記複数のリソースのうちの１つのリソースをアラインする、非一時的コンピュータ可読媒体。
【請求項６３】
請求項４９に記載の非一時的コンピュータ可読媒体において、
前記リソースアライメントが、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含み、
前記一連の命令が前記プロセッサ装置に、さらに、前記複数のマッピングから少なくとも１つのマッピングを削除する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項６４】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数の仮想システム・オン・チップのうちの２つ以上の仮想システム・オン・チップが、前記リソースアライメントに基づいて、前記複数のリソースのうちの所与のリソースを共有できるようにする手順を実行させる、非一時的コンピュータ可読媒体。
【請求項６５】
請求項６４に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数の仮想システム・オン・チップのうちの２つ以上の仮想システム・オン・チップが、前記所与のリソースに関して前記仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用する手順を実行させる、非一時的コンピュータ可読媒体。
【請求項６６】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記一連の命令が前記プロセッサ装置に、さらに、
前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが、前記リソースアライメントに基づいて、所与のリソースを独占的に使用できるようにする手順を実行させる、非一時的コンピュータ可読媒体。
【請求項６７】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記少なくとも１つの事象が、プロセッサ装置の外部で生じる外部事象を含む、非一時的コンピュータ可読媒体。
【請求項６８】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記少なくとも１つの事象が、時刻に基づく事前スケジュールされた事象を含む、非一時的コンピュータ可読媒体。
【請求項６９】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記少なくとも１つの事象が、前記複数のリソースのうちの所与のリソースの誤動作を示す故障事象を含む、非一時的コンピュータ可読媒体。
【請求項７０】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記少なくとも１つの事象が、前記複数のリソースのうちの少なくとも１つのリソースがオーバサブスクリプションであることを示すか、または、前記複数の仮想システム・オン・チップのうちの少なくとも１つの仮想システム・オン・チップがオーバサブスクリプションであることを示す、オーバサブスクリプション事象を含む、非一時的コンピュータ可読媒体。
【請求項７１】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記少なくとも１つの事象が、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、前記複数のリソースのうちの所与のリソースが、前記所与の仮想システム・オン・チップによる使用率であって、閾値未満の使用率を有することを示すアイドル事象を含む、非一時的コンピュータ可読媒体。
【請求項７２】
請求項４９に記載の非一時的コンピュータ可読媒体において、前記リソースアライメントを動的に修正する前記手順がスループットの損失を防止し、前記スループットの損失は、防止されなければ前記少なくとも１つの事象によってもたらされる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
仮想マシンとは、物理マシンをソフトウエアで実現したものであって、物理マシンと同様に動作するものである。複数の仮想マシンが１つの物理マシン上に実現される場合があり、これにより、物理マシンの基本リソースを共有できる。
【発明の概要】
【０００２】
例示的な一実施形態によれば、プロセッサ装置が、複数の仮想システム・オン・チップであって、前記複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように構成された、複数の仮想システム・オン・チップを備えてもよい。前記プロセッサ装置は、少なくとも１つの事象に応答して前記リソースアライメントを動的に修正するように構成されたリソースアライン部をさらに備えてもよい。
【０００３】
前記リソースアライン部は、さらに、前記少なくとも１つの事象に応答して前記プロセッサ装置のスループットを達成するために、前記リソースアライメントを動的に修正するように構成されてもよい。
【０００４】
前記プロセッサ装置は、さらに、前記リソースアライン部に動作可能に結合された設定部であって、前記リソースアライメントに対する少なくとも１つの修正に応答して、修正済の前記リソースアライメントを動的に適用するように構成された設定部を備えてもよい。
【０００５】
前記設定部は、さらに、前記リソースアライン部が前記リソースアライメントを修正したことを検出するように構成されてもよい。
【０００６】
前記設定部は、さらに、前記リソースアライン部が前記リソースアライメントを修正したことを示す通信を前記リソースアライン部から受信するように構成されてもよい。
【０００７】
修正済の前記リソースアライメントを動的に適用するために、前記設定部は、修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新するようにさらに構成されてもよい。
【０００８】
前記少なくとも１つの修正は、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含んでもよい。前記設定部は、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づいて、または、当該使用に適用された予め決められた時間値の期限切れに基づいて、前記少なくとも１つの修正を適用するようにさらに構成されてもよい。
【０００９】
前記プロセッサ装置は前記リソースアライン部に動作可能に結合された監視部をさらに備えもよい。前記監視部は、前記少なくとも１つの事象の少なくとも１つのインスタンスを監視するように構成され、かつ、前記リソースアライメントを動的に修正するように前記リソースアライン部をトリガするために、前記少なくとも１つの事象の前記少なくとも１つのインスタンスを前記リソースアライン部に伝達するように構成されてもよい。
【００１０】
前記少なくとも１つの事象の前記少なくとも１つのインスタンスを監視するために、前記少なくとも１つの監視部は、前記複数のリソースのうちの少なくとも１つのリソースの状態、または前記複数の仮想システム・オン・チップのうちの少なくとも１つの仮想システム状態を監視するようにさらに構成されてもよい。
【００１１】
前記少なくとも１つのリソースの前記状態は、故障状態、利用状態、または故障状態と利用状態の組合せを含んでもよい。
【００１２】
前記少なくとも１つの仮想システム状態は、故障状態、利用状態、または故障状態と利用状態の組合せを含んでもよい。
【００１３】
前記リソースアライメントは、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含んでもよい。前記リソースアライメントを動的に修正するために、前記リソースアライン部は、前記少なくとも１つの事象に応答して前記複数のマッピングのうちの少なくとも１つのマッピングを動的に修正するようにさらに構成されてもよい。
【００１４】
前記少なくとも１つのマッピングは、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインしてもよい。前記少なくとも１つのマッピングを動的に修正することは、前記所与の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも１つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも１つの他の仮想システム・オン・チップに前記所与のリソースをアラインすることを含んでもよい。
【００１５】
前記リソースアライメントを動的に修正するために、前記リソースアライン部は、少なくとも１つのマッピングを前記リソースアライメントに追加するようにさらに構成されてもよく、前記少なくとも１つのマッピングは、前記複数の仮想システム・オン・チップのうちの１つの仮想システム・オン・チップに、前記複数のリソースのうちの１つのリソースをアラインする。
【００１６】
前記リソースアライメントは、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含んでもよく、前記リソースアライメントを動的に修正するために、前記複数のマッピングから少なくとも１つのマッピングを削除することを含んでもよい。
【００１７】
前記リソースアライメントは、前記複数の仮想システム・オン・チップのうちの２つ以上の仮想システム・オン・チップが前記複数のリソースのうちの所与のリソースを共有できるようにしてもよい。
【００１８】
前記複数の仮想システム・オン・チップのうちの前記２つ以上の仮想システム・オン・チップそれぞれは、前記所与のリソースに関して前記仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用するように構成されてもよい。
【００１９】
前記リソースアライメントは、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが所与のリソースを独占的に使用できるようにしてもよい。
【００２０】
前記少なくとも１つの事象は、前記プロセッサ装置の外部で生じる外部事象を含んでもよい。
【００２１】
前記少なくとも１つの事象は、時刻に基づく事前スケジュールされた事象を含んでもよい。
【００２２】
前記少なくとも１つの事象は、前記複数のリソースのうちの所定のリソースの誤動作を示す故障事象を含んでもよい。
【００２３】
前記少なくとも１つの事象は、前記複数のリソースのうちの少なくとも１つのリソースがオーバサブスクリプション（oversubscription）であることを示すか、または、前記複数の仮想システム・オン・チップのうちの少なくとも１つの仮想システム・オン・チップがオーバサブスクリプションであることを示す、オーバサブスクリプション事象を含んでもよい。
【００２４】
前記少なくとも１つの事象は、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、前記複数のリソースのうちの所与のリソースが、前記所与の仮想システム・オン・チップによる使用率であって、閾値未満の使用率を有することを示すアイドル事象を含んでもよい。
【００２５】
前記リソースアライメントはスループットの損失を防止するように動的に修正されてもよく、前記スループットの損失は、防止されなければ前記少なくとも１つの事象によってもたらされる。
【００２６】
さらなる例示的な実施形態によれば、方法が、プロセッサ装置の複数の仮想システム・オン・チップを設定する工程であって、前記複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って前記複数のリソースのうちのリソースを利用するように設定する工程を備えてもよい。前記方法は、少なくとも１つの事象に応答して前記リソースアライメントを動的に修正する工程をさらに備えてもよい。
【００２７】
前記少なくとも１つの事象に応答して前記リソースアライメントを動的に修正する工程は、前記少なくとも１つの事象に応答して前記プロセッサ装置のスループットを達成してもよい。
【００２８】
前記方法は、前記リソースアライメントに対する少なくとも１つの修正に応答して、修正済の前記リソースアライメントを動的に適用する工程をさらに備えてもよい。
【００２９】
前記方法は、前記リソースアライメントに対する前記少なくとも１つの修正を検出する工程をさらに備えてもよい。
【００３０】
前記方法は、前記リソースアライメントに対する前記少なくとも１つの修正の通信を受信する工程をさらに備えてもよい。
【００３１】
前記方法は、修正済の前記リソースアライメントに従って前記複数の仮想システム・オン・チップに前記リソースを利用させるように、前記プロセッサ装置のコンフィグレーションを更新する工程をさらに備えてもよい。
【００３２】
前記少なくとも１つの修正は、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップと前記複数のリソースのうちの所与のリソースとの間のアライメントに対する修正を含んでもよい。前記少なくとも１つの修正を適用することは、前記所与の仮想システム・オン・チップが前記所与のリソースの使用を放棄することに基づくか、または、当該使用に適用された予め決められた時間値の期限切れに基づいてもよい。
【００３３】
前記方法は、前記少なくとも１つの事象の少なくとも１つのインスタンスを監視する工程と、前記リソースアライメントの動的修正をトリガするために、前記少なくとも１つの事象の前記少なくとも１つのインスタンスを伝達する工程とをさらに備えてもよい。
【００３４】
前記監視する工程は、前記複数のリソースのうちの少なくとも１つのリソースの状態、または、前記複数の仮想システム・オン・チップのうちの少なくとも１つの仮想システム状態を監視する工程を含んでもよい。
【００３５】
前記リソースアライメントは、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含んでもよく、前記リソースアライメントを動的に修正する工程は、前記少なくとも１つの事象に応答して前記複数のマッピングのうちの少なくとも１つのマッピングを動的に修正する工程を含んでもよい。
【００３６】
前記少なくとも１つのマッピングは、前記複数のリソースのうちの所与のリソースを前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインしてもよい。前記少なくとも１つのマッピングを動的に修正する前記工程は、前記所定の仮想システム・オン・チップが前記所与のリソースを採用できないように、かつ、少なくとも１つの他の仮想システム・オン・チップが前記所与のリソースを採用できるようにするために、前記複数の仮想システム・オン・チップのうちの前記少なくとも１つの他の仮想システム・オン・チップに前記所与のリソースをアラインする工程を含んでもよい。
【００３７】
前記リソースアライメントを動的に修正する工程は、少なくとも１つのマッピングを前記リソースアライメントに追加する工程を含んでもよく、前記少なくとも１つのマッピングは、前記複数の仮想システム・オン・チップのうちの１つの仮想システム・オン・チップに、前記複数のリソースのうちの１つのリソースをアラインしてもよい。
【００３８】
前記リソースアライメントは、前記複数のリソースと前記複数の仮想システム・オン・チップとの間に複数のマッピングを含んでもよく、前記リソースアライメントを動的に修正する前記工程は、前記複数のマッピングから少なくとも１つのマッピングを削除する工程を含んでもよい。
【００３９】
前記方法は、前記複数の仮想システム・オン・チップのうちの２つ以上の仮想システム・オン・チップが、前記リソースアライメントに基づいて、前記複数のリソースのうちの所与のリソースを共有できるようにする工程をさらに備えてもよい。
【００４０】
前記２つ以上の仮想システム・オン・チップが前記所与のリソースを共有できるようにする前記工程は、前記所与のリソースに関して前記仮想システム・オン・チップそれぞれに割り当てられた各使用率に基づいて前記所与のリソースを使用するように前記２つ以上の仮想システム・オン・チップを構成する工程を含んでもよい。
【００４１】
前記方法は、前記複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが、前記リソースアライメントに基づいて、所与のリソースを独占的に使用できるようにする工程をさらに備えてもよい。
【００４２】
前記リソースアライメントを動的に修正する前記工程はスループットの損失を防止してもよく、前記スループットの損失は、防止されなければ前記少なくとも１つの事象によってもたらされる。
【００４３】
さらに別の例示的な実施形態は、プロセッサによってロードされ実行されると、本明細書に開示する方法を前記プロセッサに実行し終えるようにさせる、一連の命令を記憶した非一時的コンピュータ可読媒体を含んでもよい。
【００４４】
なお、開示の実施形態は、方法、装置、システム、またはプログラムコードを具現化したコンピュータ可読媒体の形式で実現され得る。
【００４５】
前述の内容は、以下の本発明の例示的な実施形態のさらに具体的な説明から明らかになるであろう。添付の図面において、異なる図を通して同一の参照符号は同一の部分を指すものとする。図面は必ずしも縮尺通りではなく、むしろ、本発明の実施形態の説明に重点が置かれている。
【図面の簡単な説明】
【００４６】
【図１】プロセッサ装置の例示的な実施形態のブロック図である。
【図２】プロセッサ装置の別の例示的な実施形態のブロック図である。
【図３】リソースアライメントの例示的な実施形態のブロック図である。
【図４】リソースアライメントの別の例示的な実施形態のブロック図である。
【図５】方法の例示的な実施形態のフロー図である。
【図６】随意で開示の実施形態において用いられるコンピュータの例示的な内部構造のブロック図である。
【発明を実施するための形態】
【００４７】
仮想システム・オン・チップ（ＶＳｏＣ）とは、物理マシンの基本リソースを異なる仮想システム間で共有できるようにするマシンを実現したものである。ＶＳｏＣ実装下では、２つ以上のオペレーティングシステムアプリケーションが、互いに完全に独立しかつ保護された状態で、同一の物理マシン上に共存できる。異なる仮想システム間における物理マシンのリソースの割当ては、ハードウエアおよびソフトウエアの構成の組合せを利用して行われてもよい。
【００４８】
２つ以上の仮想システム・オン・チップにリソースを割当てることにより、開示の実施形態は、当該２つ以上の仮想システム・オン・チップの間でリソースを保護しつつ共有可能にしながら、１つのチップに埋め込まれた、２つ以上のアプリケーションおよびオペレーティングシステムの実行に対処してもよい。
【００４９】
プロセッサ装置は、多種多様なネットワーク・ストレージ機器において使用され得る。これらの機器には、ルータ、スイッチ、セキュリティ・アプライアンス、コンテンツアウェアのスイッチ、トリプルプレイゲートウェイ、アグリゲーション装置およびゲートウェイ、ストレージアレイ、ストレージネットワーク機器、ならびに、サーバなどの、仮想化を活用する可能性のある任意の好適な装置もしくはシステムが含まれる。開示の実施形態によれば、プロセッサ装置のＶＳｏＣは、いずれのリソースがプロセッサ装置のいずれのＶＳｏＣによる使用に割り当てられるかを定義するリソースアライメントに基づいて、当該ＶＳｏＣに割り当てられたリソースを利用してもよい。リソースは、処理コア、メモリ、キャッシュ、入出力（Ｉ／Ｏ）ポート、Ｉ／Ｏ装置、ハードウエアアクセラレータ、オペレーティングシステム、およびソフトウエアアプリケーションなどの、ＶＳｏＣによって利用される可能性がある任意の好適なリソースを含んでもよい。
【００５０】
例えば、プロセッサ装置は、当該プロセッサ装置が高スループットを達成できるように処理コアの負荷を低減する特定用途コプロセッサのような、リソースを含んでもよい。処理コアは、フル機能かつ高性能である、整数または浮動小数点の論理演算装置（ＡＬＵ）の実装であってよく、業界標準Ｃ／Ｃ＋＋のような任意の好適なプログラミング環境を直接サポートしてもよい。処理コアは、仮想システム・オン・チップ内のフル機能オペレーティングシステムを起動して動作させるために必要な全ての要求事項を有してもよい。
【００５１】
リソースはプロセッサ装置の内部にあっても外部にあってもよい。リソースアライメントは、プロセッサ装置のリソースをプロセッサ装置の仮想システム・オン・チップに対応するサブセットにグループ分けするアライメントを含んでもよい。サブセットのリソースの一部が重複してもよい。例えば、リソースアライメントで定義されているように、処理コアのようなリソースが、２つ以上の仮想システム・オン・チップによって共有されてもよい。開示の実施形態によれば、処理コアのようなリソースは、リソースアライメントに基づいて、２つ以上の異なる仮想システム・オン・チップによって利用されてもよい。共有は、その仮想システム・オン・チップに割り当てられた割合に基づいてもよい。
【００５２】
リソースの共有は、その仮想システム・オン・チップに割り当てられた範囲に基づいてリソースを共有することを含んでもよい。例えば、２つ以上の仮想システム・オン・チップがメモリのような同一のリソースにアラインされてもよい。仮想システム・オン・チップそれぞれは、当該メモリの特定の範囲に限定されてもよく、これにより、当該メモリ内の各メモリ位置が隔離される。
【００５３】
あるいは、リソースは、リソースアライメントに従って、特定のＶＳｏＣによって独占的に使用されてもよい。例えば、特定種類のＩ／Ｏポートのようないくつかのリソースは、共有されなくてもよい。
【００５４】
リソースアライメントは動的に修正されてもよい。本明細書では、リソースアライメントを動的リソースアライメント、リソース割当て、または動的リソース割当てという場合がある。開示の実施形態によれば、リソースアライメントは、プロセッサ装置のリソースを複数の仮想システム・オン・チップにいかに分配するかを定義してもよい。リソースアライメントは、ランタイムの前に作成されてもよく、あるいはランタイムの間に作成されてもよい。リソースアライメントは、少なくとも１つの事象に基づいて、ランタイムの間に動的に修正されてもよい。リソースアライメントは、タイマー、監視されるメトリクス（基準）、または外部事象に基づいて、ランタイム中に動的に修正されてもよい。例えば、少なくとも１つの事象は、時刻を示すタイマーに基づいてもよい。少なくとも１つの事象はメトリクスに基づいてもよい。メトリクスの例としては、ランタイム使用状況メトリクス、フォールトメトリクス、サービス品質（ＱｏＳ）メトリクス、および高度もしくは低度の透かしなどの、任意の好適なメトリクスが挙げられる。
【００５５】
図１は、プロセッサ装置１０２の例示的な実施形態のブロック図１００である。プロセッサ装置１０２は、複数の仮想システム・オン・チップ１０４ａ〜ｎを備える。複数の仮想システム・オン・チップ１０４ａ〜ｎは、複数の仮想システム・オン・チップ１０４ａ〜ｎと複数のリソース１０６ａ〜ｍとの間のリソースアライメント１０８に従って複数のリソース１０６ａ〜ｍを利用するように構成されてもよい。リソースアライメント１０８は、複数のリソース１０６ａ〜ｍのうちのいずれのリソースが複数の仮想システム・オン・チップ１０４ａ〜ｎのうちのいずれの仮想システム・オン・チップに割り当てられるかを定義してもよい。プロセッサ装置１０２は、少なくとも１つの事象１１４に応答してリソースアライメント１０８を動的に修正するように（１１２）構成されたリソースアライン部１１０をさらに備える。一実施形態によれば、プロセッサ装置１０２は、少なくとも１つの処理コア（図示せず）と、一連の命令を記憶した少なくとも１つのメモリ（図示せず）とを含んでもよい。当該一連の命令は、少なくとも１つの処理コアによってロードされて実行されると、プロセッサ装置１０２にリソースアライン部１１０を実装させる。別の実施形態によれば、リソースアライン部１１０を実装するために、プロセッサ装置１０２は１つ以上の回路装置を含んでもよい。この回路装置の例としては、2010年4月28日出願の米国特許出願第12/769,463号（米国特許第8,826,271号、その全教示が参照により本明細書に援用される）および後述する図６に開示のものまたはその等価物などが挙げられる。
【００５６】
複数のリソース１０６ａ〜ｍは、処理コア、メモリ、キャッシュ、入出力（Ｉ／Ｏ）ポート、Ｉ／Ｏ装置、ハードウエアアクセラレータ、オペレーティングシステム、およびソフトウエアアプリケーションなどの、ＶＳｏＣによって利用される可能性がある任意の好適なリソースを含んでもよい。このようなリソースはプロセッサ装置１０２の内部にあっても外部にあってもよい。複数の仮想システム・オン・チップ１０４ａ〜ｎと複数のリソース１０６ａ〜ｍとの間のリソースアライメント１０８は、複数の仮想システム・オン・チップ１０４ａ〜ｎのうちの仮想システム・オン・チップの間で一部のリソースは共有されて一部のリソースは共有されないように、複数のリソース１０６ａ〜ｍを区分けしてもよい。リソースアライメント１０８は、複数のリソース１０６ａ〜ｍのうちのいずれのリソースが複数の仮想システム・オン・チップ１０４ａ〜ｎのうちのいずれの仮想システム・オン・チップによる使用に割り当てられるかを定義してもよい。
【００５７】
リソースアライン部１１０は、少なくとも１つの事象１１４に応答して、プロセッサ装置１０２のスループットを達成するようにリソースアライメント１０８を動的に修正するようにさらに構成されてもよい。例えば、この動的リソースアライメント１０８は、スループット要求事項を維持するために、必要に応じて特定の仮想システム・オン・チップに対してリソースを追加したりリソースを削除したりするように、修正されてもよい。
【００５８】
少なくとも１つの事象は、プロセッサ装置の外部で生じる外部事象を含んでもよい。例えば、ネットワーク環境において、外部事象は、ボーダゲートウェイプロトコル（ＢＧＰ）ルートフラップであってもよい。ネットワーク環境において、ＢＧＰルートフラップは、ルーティングされるパケットを減らす必要があることを知らせてもよい。このため、リソースアライメントは、パケットアプリケーションをサポートする仮想システム・オン・チップからリソースを削除するように修正されてもよい。外部事象はウイルス攻撃の通知であってもよい。ウイルス攻撃の通知は、プロセッサ装置１０２の計算量を増加してパケットのより厳密な検査が必要であることを知らせるものであってもよい。動的リソースアライメント１０８は、例えば、処理コアのような好適なリソースなどのより多くのリソースを、パケット検査用のアプリケーションを含む所与のＶＳｏＣに割当てるように修正されてもよい。ＢＧＰルートフラップおよびウイルス攻撃通知は、外部事象の例であるが、外部事象はプロセッサ装置外部のいかなる好適な事象であってもよい。
【００５９】
少なくとも１つの事象は、時刻に基づく事前スケジュールされた事象を含んでもよい。時刻は、プロセッサ装置の利用が極めて頻繁である（例えば高トラフィック負荷である）と理解される時間かもしれない。時刻に応じてリソースを仮想システム・オン・チップに再アライン（本明細書では再割当てともいう）することにより、当該時刻において利用が極めて頻繁である仮想システム・オン・チップに追加のリソースを前もって配分できるようにしておいてもよい。このため、この動的再アライメントは、前もって、トラフィックの廃棄を防止しプロセッサ装置に対するスループット要求事項を守るように、修正されてもよい。
【００６０】
少なくとも１つの事象は、複数のリソースのうちの所与のリソースの誤動作を示す故障事象を含んでもよい。誤動作中のリソースとＶＳｏＣとの間のアライメントは、ＶＳｏＣがもはや誤動作中のリソースにアクセスせず、その代わりに別のリソースとアラインされるように、修正されてもよい。
【００６１】
少なくとも１つの事象はオーバサブスクリプション事象を含んでもよい。オーバサブスクリプション事象は、複数のリソースのうちの少なくとも１つのリソースがオーバサブスクリプションであることを示すか、または、複数の仮想システム・オン・チップのうちの少なくとも１つの仮想システム・オン・チップがオーバサブスクリプションであることを示す。このようなオーバサブスクリプションは、メトリクスに基づいて判断されてもよい。例えば、トラフィック廃棄を反映するＱｏＳメトリクスが、オーバサブスクリプション事象を判断するために使用されてもよい。オーバサブスクリプション事象に応答して、少なくとも１つのリソースにアラインされる仮想システム・オン・チップの数が、動的リソースアライメントを修正することによって低減されてもよい。さらに、少なくとも１つの仮想システム・オン・チップにアラインされるリソースの数が、動的リソースアライメントを修正することによって増加されてもよい。
【００６２】
少なくとも１つの事象は、アイドル事象を含んでもよい。アイドル事象は、複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップにアラインされた、複数のリソースのうちの所与のリソースが、当該所与の仮想システムによる使用率であって、閾値未満である使用率を有することを示す。このため、動的リソースアライメントは、当該所与のリソースを共有している仮想システム・オン・チップの数を増加するように修正されてもよい。
【００６３】
リソースアライメントは、スループットの損失を防止するように動的に修正されてもよい。なお、スループットの損失は、防止されなければ、少なくとも１つの事象によってもたらされる。例えば、特定の時刻におけるトラフィック損失を示す履歴メトリクスに基づいて、動的リソースアライメントは、将来当該特定の時刻にトラフィック損失が生じないように、当該特定の時刻において修正されてもよい。このため、少なくとも１つの事象は時刻に基づく事前スケジュールされた事象を含んでもよい。
【００６４】
図２は、プロセッサ装置２０２の別の例示的な実施形態のブロック図２００である。プロセッサ装置２０２は、複数の仮想システム・オン・チップ２０４ａ〜ｎを備える。複数の仮想システム・オン・チップ２０４ａ〜ｎは、複数の仮想システム・オン・チップ２０４ａ〜ｎと複数のリソース２０６ａ〜ｍとの間のリソースアライメント２０８に従って複数のリソース２０６ａ〜ｍのリソースを利用するように構成されてもよい。プロセッサ装置２０２はリソースアライン部２１０をさらに備える。リソースアライン部２１０は、少なくとも１つの事象２１４に応答してリソースアライメント２０８を動的に修正するように構成されてもよい。
【００６５】
プロセッサ装置２０２は、リソースアライン部２１０に動作可能に結合された設定部２１６をさらに備える。設定部２１６は、リソースアライメント２０８に対する少なくとも１つの修正２２０に応答して、修正済リソースアライメント２１８を動的に適用するように構成されてもよい。設定部２１６は、リソースアライメント２０８の内容を監視することによってリソースアライン部２１０がリソースアライメント２０８を修正したことを検出するように構成されてもよい。
【００６６】
例えば、リソースアライメント２０８はデータ構造であってもよく、設定部２１６は、データ構造の内容の変更を監視するように構成されてもよい。いくつかの実施形態によれば、リソースアライメント２０８に対する少なくとも１つの修正２２０に基づいて割り込み（図示せず）がアサートされてもよい。リソースアライメント２０８に対する少なくとも１つの修正２２０を検出することは、アサートされる割り込みに応じてもよい。しかし、リソースアライメント２０８に対する少なくとも１つの修正２２０を検出することは、任意の好適なやり方で行われてもよい。
【００６７】
例えば、いくつかの実施形態によれば、設定部２１６は、リソースアライン部２１０がリソースアライメント２０８を修正したことを示すリソースアライン部２１０からの通信２２２を、受信するように構成されてもよい。通信２２２は、プロセッサ装置２０２のメールボックスを介して送信された通信メッセージ、および開放されるセマフォなどの、任意の好適な通信機構であってもよい。
【００６８】
修正済リソースアライメント２１８を動的に適用するために、設定部２１６は、コンフィグレーション更新２２１を送信してプロセッサ装置２０２のコンフィグレーション２２４を更新し、複数の仮想システム・オン・チップ２０４ａ〜ｎに修正済リソースアライメント２１８に従って複数のリソース２０６ａ〜ｍを利用させてもよい。例えば、コンフィグレーション２２４は、複数のリソース２０６ａ〜ｍへのＶＳｏＣのアクセス許可を強制するハードウエアレジスタコンフィグレーション設定（図示せず）を含んでもよい。コンフィグレーション２２４は、複数のリソース２０６ａ〜ｍへのＶＳｏＣのアクセス許可を強制する任意の好適なコンフィグレーション設定を含んでもよい。コンフィグレーション２２４は、プロセッサ装置２０２用の対処情報（図示せず）を含んでもよく、この対処情報はリソースアライメント２０８に依存する。
【００６９】
例えば、対処情報は、プロセッサ装置２０２の２次キャッシュコントローラ（図示せず）用のコンフィグレーションを含んでよく、２次キャッシュコントローラは、複数のリソース２０６ａ〜ｍに含まれるメモリへのメモリアクセスを制御する。例えば、プロセッサ装置のメモリを伴う全てのアクセスは、２次キャッシュコントローラによって制御される２次キャッシュ（図示せず）を通るようにルーティングされてもよい。なぜなら、２次キャッシュは、プロセッサ装置２０２のメモリアクセスのための中心位置として作用し得るからである。
【００７０】
複数の仮想システム・オン・チップ２０４ａ〜ｎは、オペレーティングシステムおよび埋め込まれたアプリケーションを実行する仮想実行環境として作用してもよい。設定部２１６は、コンフィグレーション２２４を更新して、各ＶＳｏＣがリソースアライメント２０８に従ってその対応するリソースにアクセスするようにしてもよい。複数の仮想システム・オン・チップ２０４ａ〜ｎによって保護が提供されていると仮定して、プロセッサ装置２０２の各ＶＳｏＣ内で動作しているアプリケーションおよびオペレーティングシステムは、プロセッサ装置２０２の他の仮想システム・オン・チップ内で動作している他のアプリケーションおよびオペレーティングシステムを認識しなくてもよい。
【００７１】
コンフィグレーション２２４は、リソースまたはリソースのパーティションへのＶＳｏＣアクセスを、リソースアライメント２０８における記述に従って、可能にするかまたは防止してもよい。例えば、動的ランダムアクセスメモリ（ＤＲＡＭ）などのリソースのパーティションは、１つのパーティションが１つのＶＳｏＣによってアクセスされて他の仮想システム・オン・チップによってはアクセスされないように構成されてもよい。コンフィグレーション２２４は、仮想システム・オン・チップのあるグループが所与のリソースまたはその一部を共有できるようにし、他の仮想システム・オン・チップが当該所与の共有リソースにアクセスできないようにしてもよい。
【００７２】
コンフィグレーション２２４は、共有リソースへのＶＳｏＣ優先順位を強制して、１つのＶＳｏＣが、プロセッサ装置の他の仮想システム・オン・チップよりも優先的に共有リソースにアクセスするための厳密な優先順位または重みづけされた優先順位を有するようにしてもよい。このような優先順位情報（図示せず）は、コンフィグレーション２２４の一部として含まれてもよく、またはリソースアライメント２０８の一部として記憶されてもよい。
【００７３】
少なくとも１つの修正２２０は、複数の仮想システム・オン・チップ２０４ａ〜ｎのうちの所与の仮想システム・オン・チップと、複数のリソース２０６ａ〜ｍのうちの所与のリソースとの間のアライメントに対する修正を含んでもよい。設定部２１６は、当該所与の仮想システム・オン・チップが所与のリソースの使用を放棄することに基づいて、または当該使用に適用された予め決められた時間値の期限切れに基づいて、少なくとも１つの修正２２０を適用するようにさらに構成されてもよい。
【００７４】
例えば、少なくとも１つの修正２２０は、上記所与の仮想システム・オン・チップとは異なる仮想システム・オン・チップに上記所与のリソースをアラインしても（すなわち、割り当てても）よいが、上記所与のリソースは依然として上記所与の仮想システム・オン・チップによって使用中であるかもしれない。設定部２１６は、プロセッサ装置２０２においてローカルにアクセスされ得るリソース使用中情報２１９に基づいて、上記所与のリソースが上記所与の仮想システム・オン・チップによって依然として使用中であることを判断してもよい。そのようなリソース使用中情報２１９は、複数の仮想システム・オン・チップ２０４ａ〜ｎによって更新されてもよく、またはその他の任意の好適な方法で更新されてもよい。
【００７５】
設定部２１６は、上記所与の仮想システム・オン・チップが上記所与のリソースの使用を放棄するまで、上記少なくとも１つの修正２２０の適用を遅らせてもよい。あるいは、設定部２１６が、上記所与の仮想システム・オン・チップが上記所与のリソースの使用を放棄するのを待つ、予め決められた時間値を採用してもよい。設定部２１６は、予め決められた時間値の期限切れに基づいて上記少なくとも１つの修正２２０を適用してもよい。
【００７６】
プロセッサ装置２０２は、リソースアライン部２１０に動作可能に結合された監視部２２６をさらに備えてもよい。監視部２２６は、少なくとも１つの事象２１４の少なくとも１つのインスタンスを監視し、かつ、少なくとも１つの事象２１４の少なくとも１つのインスタンスをリソースアライン部２１０に伝達して、リソースアライン部２１０をトリガして（起動して）リソースアライメント２０８を動的に修正させるように、構成されてもよい。
【００７７】
少なくとも１つの事象２１４の少なくとも１つのインスタンスを監視するために、少なくとも１つの監視部２２６は、複数のリソース２０６ａ〜ｍのうちの少なくとも１つのリソースの状態または複数の仮想システム・オン・チップ２０４ａ〜ｎのうちの少なくとも１つの仮想システム状態を監視するようにさらに構成されてもよい。複数のリソース２０６ａ〜ｍのうちの少なくとも１つのリソースの状態は、故障状態、利用状態、またはこれらの組合せを含んでもよい。複数の仮想システム・オン・チップ２０４ａ〜ｎのうちの少なくとも１つの仮想システム状態は、故障状態、利用状態、またはこれらの組合せを含んでもよい。
【００７８】
少なくとも１つの事象２１４の少なくとも１つのインスタンスを監視するために、監視部２２６は、プロセッサ装置２０２の監視情報２２７を監視してもよい。監視情報２２７は、時刻、オーバサブスクリプションメトリクス、アイドルメトリクス、リソース透かし、ネットワーク情報、リソース故障情報などの情報を含んでもよい。監視情報２２７は、リソースアライメント２０８を少なくとも１つの事象２１４に応答して動的修正することが有利と思われる、少なくとも１つの事象２１４を判断するために監視され得る、任意の好適な情報を含んでもよい。
【００７９】
監視部２２６は、事象スケジューラ２２９を含んでもよい。事象スケジューラ２２９は、再アライメントスケジュール（図示せず）に基づいて少なくとも１つの事象２１４をスケジュールしてもよい。再アライメントスケジュールは、静的スケジュール、または周期的にそれ自体で調整を行う動的スケジュールであってもよい。再アライメントスケジュールは、１つ以上の時刻エントリを含んでもよい。例えば、再アライメントスケジューラは、プロセッサ装置の性能に関して再アライメントが有利である時刻エントリを１つ以上含んでもよい。再アライメントスケジュールは、プロセッサ装置全体の使用状況メトリクスに基づいて、ＶＳｏＣ使用状況メトリクス、およびリソースメトリクスなどの任意の好適なメトリクス毎に動的に調整されてもよい。再アライメントは、ＢＧＰルートフラップのような外部事象などの任意の好適な外部事象に基づいてもよい。
【００８０】
一実施形態によれば、リソースはメモリであってもよい。メモリは１つ以上のチャンクを含んでもよい。１つ以上のチャンクそれぞれは、メモリからの対応する固定数のビットを含む、当該メモリの１区画であってもよい。固定数のビットは連続してもよい。あるいは、１つ以上のチャンクは、メモリ内に分散している、当該メモリからの固定数のビットを含んでもよい。１つ以上のチャンクはそれぞれ、少なくとも１つの事象に基づいて、解放されてもよく、または所定のＶＳｏＣに割当てられてもよい。少なくとも１つの事象は、再アライメントスケジュールに応じてもよく、このため、メモリの１つ以上のチャンクがスケジュールに基づいて動的に再アラインされてもよい。例えば、少なくとも１つの事象は再アライメントスケジュールに応じてもよいため、メモリの１つ以上のチャンクは、所与のＶＳｏＣが例えば低負荷であると分かっている時に、スケジュールどおりに解放されてもよい。その一方で、メモリの１つ以上のチャンクは、所与のＶＳｏＣが高負荷であると分かっている時に、スケジュールどおりに所定のＶＳｏＣに割り当てられてもよい。
【００８１】
開示の実施形態によれば、監視部２２６は、様々なメトリクスを監視して、上述した故障、オーバサブスクリプション、またはアイドルの事象を判断するように構成されてもよい。例えば、監視部２２６は、パリティエラーまたは誤り訂正符号（ＥＣＣ）エラーなどのメトリクスを監視して故障事象を判断するように構成されてもよい。監視部２２６は、パリティエラーまたは誤り訂正符号（ＥＣＣ）エラーに対して閾値を適用して、故障事象を判断してもよい。故障事象は、任意の好適な方法で判断されてもよい。例えば、リソースは、故障事象を判断するために使用され得る、ハードウエア故障インジケータまたは劣化種類インジケータを有してもよい。ＱｏＳ統計のようなメトリクスが、オーバサブスクリプションまたはアイドルの事象を判断するために監視部２２６によって監視されてもよい。リソースアライメントを動的に修正して、所与の仮想システム・オン・チップが例えばシルバーグレードのような好適なＱｏＳグレードなどの特定のＱｏＳ要求事項を満たすようしてもよい。
【００８２】
一実施形態によれば、プロセッサ装置２０２は、少なくとも１つの処理コア（図示せず）と、一連の命令を記憶する少なくとも１つのメモリ（図示せず）とを含んでもよい。当該一連の命令は、少なくとも１つの処理コアによって読み込まれて実行されると、プロセッサ装置２０２に、リソースアライン部２１０、設定部２１６および監視部２２６を実装させる。別の実施形態によれば、リソースアライン部２１０、設定部２１６および監視部２２６を実装するために、プロセッサ装置２０２は１つ以上の回路装置を含んでもよい。この回路装置の例としては、2010年4月28日出願の米国特許出願第12/769,463号（米国特許第8,826,271号、その全教示が参照により本明細書に援用される）および後述する図６に開示のものまたはその等価物などが挙げられる。
【００８３】
図３はリソースアライメント３０８の例示的な実施形態のブロック図３００である。リソースアライメント３０８は、複数のリソース３０６ａ〜ｍと複数の仮想システム・オン・チップ３０４ａ〜ｎとの間に複数のマッピング３４０ａ〜ｋを含んでもよい。リソースアライメント３０８を動的に修正するために、上述した図１のリソースアライン部１１０または図２のリソースアライン部２１０などのリソースアライン部が、上述した図１の少なくとも１つの事象１１４または図２の少なくとも１つの事象２１４などの少なくとも１つの事象に応答して、複数のマッピング３４０ａ〜ｋのうちの少なくとも１つのマッピングを動的に修正するように、さらに構成されてもよい。
【００８４】
少なくとも１つのマッピングは、複数のリソース３０６ａ〜ｍのうちの所与のリソースを複数の仮想システム・オン・チップ３０４ａ〜ｎのうちの所与の仮想システム・オン・チップにアラインしてもよい。例えば、マッピング1,1３０４ａは、ＶＳｏＣ1３０４ａをリソース1３０６ａにマッピングし、マッピング1,2３０４ｂはＶＳｏＣ1３０４ａをリソース2３０６ｂにマッピングし、マッピング2,2３０４ｃはＶＳｏＣ2３０４ｂをリソース2３０６ｂにマッピングし、マッピングI,j３０４ｋはＶＳｏＣi３０４ｉをリソースj３０６ｊにマッピングする。
【００８５】
少なくとも１つのマッピングを動的に修正することは、複数の仮想システム・オン・チップ３０４ａ〜ｎのうちの少なくとも１つの他の仮想システム・オン・チップに所与のリソースをアラインして、所与の仮想システムが当該所与のリソースを採用できないようにし、当該少なくとも１つの他の仮想システムが当該所与のリソースを採用できるようにすることを、含んでもよい。例えば、少なくとも１つのマッピングを修正することは、マッピングI,j３０４ｋを削除しかつマッピングn,j３４０ｌを追加して、ＶＳｏＣi３０４ｉがリソースj３０６ｊを使用できなくしかつＶＳｏＣn３０４ｎがリソースj３０６ｊを採用できるようにすることを含んでもよい。
【００８６】
リソースアライメント３０８を動的に修正するために、上述した図１のリソースアライン部１１０または図２のリソースアライン部２１０などのリソースアライン部が、少なくとも１つのマッピングをリソースアライメント３０８に追加するようにさらに構成されてもよく、少なくとも１つのマッピングは、複数の仮想システム・オン・チップ３０４ａ〜ｎのうちの１つの仮想システム・オン・チップに複数のリソース３０６ａ〜ｍのうちの１つのリソースをアラインする。例えば、マッピングn,j３４０ｌを追加することにより、ＶＳｏＣn３０４ｎがリソースj３０６ｊを採用できるようにしてもよい。
【００８７】
リソースアライメント３０８は、複数のリソース３０６ａ〜ｍと複数の仮想システム・オン・チップ３０４ａ〜ｎとの間に複数のマッピング３４０ａ〜ｋのような複数のマッピングを含んでもよく、リソースアライメント３０８を動的に修正するために、マッピングI,j３０４ｋのような複数のマッピング３４０ａ〜ｋから少なくとも１つのマッピングを削除することを含んでもよい。
【００８８】
リソースアライメント３０８は、複数の仮想システム・オン・チップ３０４ａ〜ｎのうちの２つ以上の仮想システム・オン・チップが複数のリソース３０６ａ〜ｍのうちの所与のリソースを共有できるようにしてもよい。例えば、リソースアライメント３０８のマッピング1,2３４０ｂおよびマッピング2,2３４０ｃによって、リソース2３０６ｂがＶＳｏＣ1３０４ａおよびＶＳｏＣ2３０４ｂによって共有される。
【００８９】
複数の仮想システム・オン・チップ３０４ａ〜ｎのうちの２つ以上の仮想システム・オン・チップそれぞれは、所与のリソースに関して各仮想システムに割り当てられた各使用率に基づいて当該所定のリソースを使用するように構成されてもよい。使用率は、所定のリソースの種類、各仮想システム・オン・チップ上で動作しているアプリケーションの種類、またはこれらの組合せに応じてもよい。
【００９０】
使用率は、対応する仮想システム・オン・チップによって制御されてもよい。使用率は、仮想マシンモニタ（ＶＭＭ）（図示せず）（本明細書ではハイパーバイザーともいう）によって監視されてもよい。仮想マシンモニタは、ウォッチドッグに基づいて、対応する仮想システム・オン・チップに所与のリソースの使用を放棄させてもよい。
【００９１】
リソースアライメント３０８は、複数の仮想システム・オン・チップのうちの所与の仮想システム・オン・チップが所与のリソースを独占的に使用できるようにしてもよい。例えば、リソース1３０６ａは、特定種類のＩ／Ｏポートのような非共有リソースであってもよく、その他の任意の好適な非共有リソースであってもよく、マッピング1,1３４０ａによって、ＶＳｏＣ1３０４ａがリソース1３０６ａを独占的に使用できる。
【００９２】
図４はリソースアライメント４０８のさらなる例示的な実施形態のブロック図４００である。リソースアライメント４０８は、複数のエントリ４６０ａ〜４６０ｎを含むリソースアライメント表であってもよい。複数のエントリ４６０ａ〜４６０ｎはそれぞれ、固有の仮想システム・オン・チップ識別子４６２をリソース識別子４６４に関連付ける。例えば、複数のエントリ４６０ａ〜４６０ｎは、固有の仮想システム・オン・チップ識別子４６６ａ〜４６６ｎをリソース識別子４６８ａ〜４６８ｎにそれぞれ関連付けてもよい。
【００９３】
固有の仮想システム・オン・チップ識別子４６６ａ〜４６６ｎはそれぞれ、上述したような図１、図２および図３それぞれの複数の仮想システム・オン・チップ１０４ａ〜ｎ、２０４ａ〜ｎ、および３０４ａ〜ｎなどの複数の仮想システム・オン・チップのうちの１つの仮想システム・オン・チップを、一意に識別してもよい。リソース識別子４６８ａ〜４６８ｎは、図１、図２および図３それぞれの複数のリソース１０６ａ〜１０６ｍ、２０６ａ〜２０６ｍ、および３０６ａ〜３０６ｍなどの複数のリソースのうちのいずれのリソースが、固有の仮想システム・オン・チップ識別子４６６ａ〜４６６ｎによって識別される、対応する１つ以上の仮想システム・オン・チップによって利用され得るかを示してもよい。
【００９４】
例えば、リソースアライメント４０８のエントリ４６０ｂは、仮想システム識別子４６６ｂをリソース識別子４６８ｂに関連付けてもよい。一実施形態によれば、リソース識別子４６８ａ〜４６８ｎはビットマップを含んでもよく、ビットマップ内の各ビットが対応リソースのアライメント表示を提供する。しかし、リソース識別子は、仮想システム・オン・チップをリソースにアラインする任意の好適な方法で実現されてもよい。本明細書では、リソース識別子のビットマップの各ビットはリソースアライメント表示ともいう。
【００９５】
仮想システム・オン・チップ識別子４６６ａ〜４６６ｎのような仮想システム・オン・チップ識別子に関連付けられた、リソース識別子４６８ａ〜４６８ｎのようなリソース識別子のビットマップの各ビットは、第１の状態を有し、当該ビットに関連付けられた各リソースを仮想システム・オン・チップ識別子に関連付けられたＶＳｏＣにマッピングしてもよい。すなわち、各リソースはＶＳｏＣにアラインされる。ビットマップの各ビットは、第２の状態を有し、各リソースと仮想システム・オン・チップ識別子に関連付けられたＶＳｏＣとの間にマッピングが存在しないこと、すなわち、各リソースとＶＳｏＣはアラインされていないことを反映してもよい。例えば、ビットマップ４６８ａのビット４７０を使用して、仮想システム・オン・チップ識別子４６６ａに関連付けられた仮想システム・オン・チップを、ビット４７０のビット位置に関連付けられたリソースにアラインしてもよい。ビット４７０は、第１の状態「１」を有し、仮想システム・オン・チップをリソースにアラインし、これにより、当該仮想システム・オン・チップが当該リソースを使用できるようにしてもよい。その一方で、ビット４７０は、第２の状態「０」を有し、当該仮想システム・オン・チップが当該リソースを使用できないようにしてもよい。リソースは、ビットマップ内の対応するビットを修正することにより、１つの仮想システム・オン・チップから別の仮想システム・オン・チップに「移され」てもよい。
【００９６】
例えば、リソース識別子４６８ｂのビット４７２および４６８ｃのビット４７２の４７４はそれぞれ、１つの特定のリソースに関連付けられてもよい。特定のリソースは、ビット４７２および４７４のビット位置に関連付けてもよい。ビット４７２の値を「１」から「０」に変更することによってビット４７２を修正することにより、仮想システム・オン・チップ識別子４６６ｂに関連付けられた仮想システム・オン・チップに関するリソースアライメントを、当該仮想システム・オン・チップがもはや当該特定のリソースにアクセスできなくなるように変更してもよい。ビット４７４の値を「０」から「１」に変更することによってビット４７４を修正することにより、仮想システム・オン・チップ識別子４６６ｃに関連付けられた仮想システム・オン・チップに関するリソースアライメントを、当該仮想システム・オン・チップが当該特定のリソースにアクセス可能となるように、変更してもよい。このため、特定のリソースは、事実上（すなわち物理的にではなく）１つの仮想システム・オン・チップから別の仮想システム・オン・チップに「移され」たことになる。
【００９７】
特定のリソースに関連付けられたリソース種類に基づいて、開示の実施形態は、特定のリソースに対応するリソースアライメントのリソースアライメント表示に微細な更新を提供してもよい。例えば、上述したリソース識別子４６８ｂのビット４７２およびリソース識別子４６８ｃのビット４７４を修正することは微細に修正を行うことを含んでもよく、これによってビット４７２および４７４の値に対する修正が、ビット４７２を含むリソース識別子４６８ｂおよびビット４７４を含むリソース識別子４６８ｃにそれぞれ関連付けられたＶＳｏＣに同時に認識できるようにしてもよい。微細な更新が、特定のリソースへの独占的アクセスをそれぞれ要求する異なるＶＳｏＣの間で起こり得る競合を防止し得る。
【００９８】
開示の実施形態によれば、メモリ位置またはＩ／Ｏポートなどの非共有リソース種類のような、独占的に使用され得るリソースなどの任意の好適な種類の同一リソースに対応するリソースアライメント表示は、微細に更新されてもよい。その一方で、処理コアのような共有リソース種類などの任意の好適な共有リソース種類を有する同一リソースに対応するリソースアライメント表示は、個々に修正されてもよい。なお、共有および非共有のリソース種類の例は、リソースの種類のこれら具体例の共有または非共有に限定するものではない。例えば、いくつかの例では、Ｉ／Ｏポートが共有リソースであってもよく、処理コアが非共有リソースであってもよい。
【００９９】
開示の実施形態によれば、仮想システム・オン・チップ識別子４６２のような仮想システム・オン・チップ識別子は、受信パケット（図示せず）からフィールドを抽出することに基づいて判断されてもよい。抽出されたフィールドは、５―タプルキーのようなキーを構成するために使用されてもよい。当該キーは、仮想システム・オン・チップ識別子にキーをマッピングするルックアップテーブル（ＬＵＴ）（図示せず）に対して索引を付けるために使用され得る。このため、受信パケットは、当該キーについてＬＵＴ内で見つかった仮想システム・オン・チップ識別子４６２に基づく所与のＶＳｏＣに対して、スケジュールされてもよい。キーについてＬＵＴ内で見つかった仮想システム・オン・チップ識別子４６２を使用して、対応するリソース識別子４６４が所与のＶＳｏＣについて識別されてもよい。対応するリソース識別子４６４は、上述したように、いずれのリソースが所与のＶＳｏＣによって採用され得るかを示す。
【０１００】
受信パケットを処理するために所与のＶＳｏＣが特定のリソースを採用している間、当該特定のリソースがもはや当該所与のＶＳｏＣにアラインされないように、少なくとも１つの事象がリソースアライメント４０８を修正させるかもしれない。このため、設定部２１６は、当該特定のリソースが当該所与のＶＳｏＣによって使用されなくなるまで、または予め決められた時間値が期限切れするまで、修正済リソースアライメント２１８を検出しコンフィグレーション更新２２１の適用を遅らせてもよい。このようにしなければ、当該所与のＶＳｏＣが当該特定のリソースを使用できなくなってしまう。
【０１０１】
図５は、本方法（５００）の例示的な実施形態のフロー図である。本方法は、開始（５０２）し、プロセッサ装置の複数の仮想システム・オン・チップを、当該複数の仮想システム・オン・チップと複数のリソースとの間のリソースアライメントに従って当該複数のリソースのうちのリソースを利用するように設定してもよい（５０４）。本方法は、少なくとも１つの事象（５０８）に応答してリソースアライメントを動的に修正してもよく、本方法は、その後、例示的な本実施形態において終了（５０８）する。
【０１０２】
開示の実施形態によれば、セキュリティ・アプライアンス（図示せず）がプロセッサ装置１０２または２０２を含んでもよい。プロセッサ装置１０２または２０２はネットワークサービスプロセッサであってもよい。セキュリティ・アプライアンスは、１つのネットワークインタフェースで受信したパケットを別のネットワークインタフェースに切り替え得る独立型システムであってもよく、パケットを転送する前に受信パケットに対して複数のセキュリティ機能を実行してもよい。例えば、セキュリティ・アプライアンスは、広域ネットワーク（ＷＡＮ）のような任意の好適なネットワークにおいて受信され得るパケットに対してセキュリティ処理を行い、その後、処理されたパケットをローカルエリアネットワーク（ＬＡＮ）のような任意の好適なネットワークに転送するために、使用されてもよい。
【０１０３】
プロセッサ装置１０２または２０２は、受信パケットにカプセル化された開放型システム間相互接続（ＯＳＩ）ネットワークＬ２〜Ｌ７層プロトコルを処理するように構成されてもよい。当業者とっては周知であるように、ＯＳＩ参照モデルは７つのネットワークプロトコル層（Ｌ１〜Ｌ７）を定義する。物理層（Ｌ１）は、プロセッサ装置を伝送媒体に接続する実際の電気的および物理的インタフェースを記述する。データリンク層（Ｌ２）はデータフレーミングを行う。ネットワーク層（Ｌ３）はデータをパケットにフォーマット化する。トランスポート層（Ｌ４）はエンド・ツー・エンドトランスポートを担う。セッション層（Ｌ５）は、装置間の通信、例えば通信が半二重であるか全二重であるかを管理する。プレゼンテーション層（Ｌ６）は、データフォーマット化およびプレゼンテーション、例えば構文、制御コード、特殊図形、および文字セッなどを管理する。アプリケーション層（Ｌ７）は、ユーザ間の通信、例えばファイル転送や電子メールなどを許可する。
【０１０４】
プロセッサ装置１０２または２０２は、上位層ネットワークプロトコル、例えばＬ４〜Ｌ７についての作業（例えばパケット処理動作）をスケジュール化しキューに入れ、受信パケットにおける上位層ネットワークプロトコルの処理がパケットをワイヤスピードで転送することを可能にする。パケットをワイヤスピードで転送するようにプロトコルを処理するため、プロセッサ装置１０２または２０２は、ネットワークデータ転送速度を低下させない。プロセッサ装置１０２または２０２は、物理ハードウエアインタフェースであり得るネットワークインタフェース（図示せず）からパケットを受信してもよく、かつ、受信したパケットにＬ２〜Ｌ７ネットワークプロトコル処理を行ってもよい。その後、プロセッサ装置１０２または２０２は、処理済みパケットをネットワークインタフェースを介してネットワーク内の別のホップへ、最終宛先へ、または別のバスを介してホストプロセッサによるさらなる処理のために、転送してもよい。複数の仮想システム・オン・チップ１０４ａ〜ｎまたは複数の仮想システム・オン・チップ２０４ａ〜ｎなどの複数の仮想システム・オン・チップは、ネットワークセキュリティプロトコルの処理のためのアプリケーションを含んでもよい。ネットワークセキュリティプロトコルの例としては、ファイアウォール、アプリケーションファイアウォール、ＩＰセキュリティ（ＩＰＳｅｃ）および／もしくはセキュアソケットレイヤ（ＳＳＬ）を含む仮想プライベートネットワーク（ＶＰＮ）、侵入検知システム（ＩＤＳ）、およびアンチウイルス（ＡＶ）などの、任意の好適なネットワークプロトコルが挙げられる。
【０１０５】
複数の仮想システム・オン・チップ１０４ａ〜ｎまたは２０４ａ〜ｎは、複数の仮想システム・オン・チップ１０４ａ〜ｎまたは２０４ａ〜ｎにアラインされた複数の処理コアを用いて高アプリケーション性能を発揮してもよい。処理コアはそれぞれ、データプレーン動作、コントロールプレーン動作、およびこれらの組合せの実行に専用であってもよい。データプレーン動作は、パケットを転送するためのパケット動作を含んでもよい。コントロールプレーン動作は、複雑な上位層プロトコルの一部を処理することを含んでもよい。複雑な上位層プロトコルの例としては、インターネットプロトコルセキュリティ（ＩＰＳｅｃ）、伝送制御プロトコル（ＴＣＰ）、およびセキュアソケットレイヤ（ＳＳＬ）などの、任意の好適な上位層プロトコルが挙げられる。データプレーン動作が、これら複雑な上位層プロトコルの他の部分を処理することを含んでもよい。
【０１０６】
開示の実施形態によれば、複数の処理コア、メモリ、入出力ポートなどのリソースは、ランタイムの間に１つ以上の仮想システム・オン・チップに動的に割当てられてもよい。リソース割当ては、上述したように、少なくとも１つの事象に基づいて２つ以上の仮想システム・オン・チップの間で動的に再アラインされてもよい。
【０１０７】
複数の処理コアは、データプレーンアプリケーションまたはコントロールプレーンアプリケーションをサポートする仮想システム・オン・チップに割当てられてもよい。リソースは、データプレーンに割り当てられたこれら仮想システム・オン・チップの間で再アラインされてもよい。例えば、第１のリソースセットが、データプレーン使用に利用可能であると特定されて、例えばＩＤＳまたはＡＶのタイプのＶＳｏＣの転送のような、１つのデータプレーンＶＳｏＣから別のデータプレーンＶＳｏＣに動的に割り当てられてもよい。同様に、第２のリソースセットがコントロールプレーン使用に利用可能であると特定されて、当該第２のリソースセットが１つのコントロールプレーンＶＳｏＣから別のコントロールプレーンＶＳｏＣに動的に割り当てられてもよい。開示の実施形態によれば、リソースはＶＳｏＣに動的にアラインされてもよい。
【０１０８】
図６は、本発明の様々な実施形態が実装され得るコンピュータ６００の内部構造の例のブロック図である。コンピュータ６００はシステムバス６０２を含み、バスは、コンピュータまたは処理システムの構成部品の間におけるデータ転送のために使用される１組のハードウエア線である。システムバス６０２は、実際のところ共有電線管である。共有電線管は、コンピュータシステムの異なる要素（例えば、プロセッサ、ディスク記憶装置、メモリ、入出力ポート、ネットワークポートなど）を接続し、コンピュータシステムの異なる要素間での情報の転送を可能にする。システムバス６０２には、様々な入出力装置（例えば、キーボード、マウス、ディスプレイ、プリンタ、スピーカなど）をコンピュータ６００に接続するためのＩ／Ｏ装置インタフェース６０４が結合されている。ネットワークインタフェース６０６によって、コンピュータ６００が、ネットワークに取付けられた様々な他の装置に接続できる。メモリ６０８は、本発明の実施形態を実現するために使用され得るコンピュータソフトウエア命令６１０およびデータ６１２のための揮発性記憶装置を提供する。ディスク記憶装置６１４は、本発明の実施形態を実装するために使用され得るコンピュータソフトウエア命令６１０およびデータ６１２のための不揮発性記憶装置を提供する。中央処理装置６１８もまたシステムバス６０２に結合されており、コンピュータ命令の実行に備える。
【０１０９】
本明細書に開示するさらなる例示的な実施形態は、コンピュータプログラム製品を使用して構成されてもよい。例えば、制御は、例示的な実施形態を実装するためのソフトウエア内にプログラムされてもよい。さらなる例示的な実施形態は、プロセッサによって実行され得る命令であって、読み込まれて実行されるとプロセッサに本明細書で記載した方法を完了させる命令を含む非一時的コンピュータ可読媒体を含んでもよい。なお、本明細書で開示したブロック図およびフロー図のリソースアライン部１１０もしくは２１０、設定部２１６、および監視部２２６などの任意の要素のような、ブロック図およびフロー図の各要素は、ソフトウエア、ハードウエア（2010年4月28日出願の米国特許出願第12/769,463号（米国特許第8,826,271号、その全教示が参照により本明細書に援用される）に開示された１つ以上の回路装置および先述した図６またはその等価物など）、ファームウエア、これらの組合せ、または将来確定されるその他の同様の実現物において実装されてもよい。さらに、本明細書で説明したブロック図およびフロー図の各要素は、ソフトウエア、ハードウエア、またはファームウエアにおいて組み合わされてもよく、分割されてもよい。ソフトウエアに実装する場合には、ソフトウエアは本明細書で開示した例示的な実施形態をサポート可能な任意の言語で書かれていてもよい。ソフトウエアは、例えばランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、コンパクトディスク読み取り専用メモリ（ＣＤ―ＲＯＭ）等、任意の形態のコンピュータ可読媒体に記憶されてもよい。動作においては、汎用もしくは特定用途向けプロセッサまたは処理コアが、当該技術分野で周知のやり方でソフトウエアをロードし実行する。さらに、ブロック図およびフロー図は、より多くのまたは少ない数の要素を含んでよく、それらの要素は、異なる配置または向きであってもよく、異なるように表現されてもよい。なお、本明細書で開示した実施形態の実行を説明する、ブロック図、フロー図および／またはネットワーク図、ならびにブロック図およびフロー図の数が実装時に決定されてもよい。
【０１１０】
本発明をその例示的な実施形態を参照して具体的に示して説明したが、当業者であれば、添付の特許請求の範囲に包含される本発明の範囲から逸脱することなく、形式および詳細の様々な変更が可能であることを理解するであろう。
【図１】
2017199369.tif 000003
【図２】
2017199369.tif 000004
【図３】
2017199369.tif 000005
【図４】
2017199369.tif 000006
【図５】
2017199369.tif 000007
【図６】
2017199369.tif 000008
【外国語明細書】
2017199369000001.pdf
2017199369000002.pdf
2017199369000003.pdf
2017199369000004.pdf