(57)【要約】本発明の実施形態は、仮想化プラットホームによって割込みを処理する方法および関連デバイスを提供し、この方法は、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップと、第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理するステップと、第ｉの物理割込みに応じて第ｉの仮想割込みを判定するステップと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップとを含み、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する。上記の技術的解決策によれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
2017518589.tif 000002
【特許請求の範囲】
【請求項１】
仮想化プラットホームによって割込みを処理する方法であって、前記方法は計算ノードに適用され、前記計算ノードは、物理ハードウェア層と、前記物理ハードウェア層で走るホストＨｏｓｔと、前記Ｈｏｓｔ上で走る少なくとも１つの仮想マシンＶＭと、前記少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを備え、前記物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを備え、前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、前記Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを備え、前記少なくとも１つのＶＭは第ｋのＶＭを備え、前記第ｊの物理入出力デバイスは前記第ｋのＶＭに向き、前記方法は前記Ｈｏｓｔによって実行され、前記方法は、
前記第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、前記Ｕ個の標的ｐＣＰＵが、前記第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉの仮想割込みが前記第ｉの物理割込みに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、判定するステップと、
前記第ｎのｐＣＰＵを使用して前記第ｉの物理割込みを処理するステップと、
前記第ｉの物理割込みに応じて前記第ｉの仮想割込みを判定するステップと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉの仮想割込みを実行する、判定するステップと
を含み、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とする方法。
【請求項２】
前記Ｕ個の標的ｐＣＰＵと前記第ｉの物理割込みとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係は、
前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定されることを特徴とする請求項１に記載の方法。
【請求項３】
前記Ｕ個の標的ｐＣＰＵと前記第ｉの物理割込みとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係は、
前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定されることを特徴とする請求項１に記載の方法。
【請求項４】
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係が１対多数の類似性関係であるとき、前記Ｖ個の標的ｖＣＰＵから前記第ｍのｖＣＰＵを判定する前記ステップは、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップと
を含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する前記ステップは、
仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含むことを特徴とする請求項４に記載の方法。
【請求項６】
仮想化プラットホームによって割込みを処理する方法であって、前記方法は計算ノードに適用され、前記計算ノードは、物理ハードウェア層と、前記物理ハードウェア層で走るホストＨｏｓｔと、前記Ｈｏｓｔ上で走るＹ個の仮想マシンＶＭと、前記Ｈｏｓｔ上で走るＹ個の仮想ホストｖｈｏｓｔカーネルスレッドと、前記少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを備え、前記物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを備え、前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、前記Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを備え、前記Ｙ個のＶＭは第ｋのＶＭを備え、前記第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを備え、前記第ｉのｖｉｒｔｉｏデバイスは前記Ｙ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、前記方法は前記Ｈｏｓｔによって実行され、前記方法は、
前記第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、前記Ｕ個の標的ｐＣＰＵが、前記第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みが前記第ｉのｖｈｏｓｔスレッドに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、判定するステップと、
前記第ｎのｐＣＰＵを使用して前記第ｉのｖｈｏｓｔスレッドを処理するステップと、
前記第ｉのｖｈｏｓｔスレッドに応じて前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを判定するステップと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを実行する、判定するステップと
を含み、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とする方法。
【請求項７】
前記Ｕ個の標的ｐＣＰＵと前記第ｉのｖｈｏｓｔスレッドとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の前記類似性関係は、
前記Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定されることを特徴とする請求項６に記載の方法。
【請求項８】
前記Ｕ個の標的ｐＣＰＵと前記第ｉのｖｈｏｓｔスレッドとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の前記類似性関係は、
前記Ｖ個の標的ｖＣＰＵと前記第Ｉのｖｉｒｔｉｏデバイスの前記仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定されることを特徴とする請求項６に記載の方法。
【請求項９】
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係が１対多数の類似性関係であるとき、前記Ｖ個の標的ｖＣＰＵから前記第ｍのｖＣＰＵを判定する前記ステップは、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップ、または
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップと
を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する前記ステップは、
ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、前記ｖｉｒｔｉｏデバイスの前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
ホストＨｏｓｔであって、前記Ｈｏｓｔは計算ノードに適用され、前記計算ノードは、物理ハードウェア層と、前記物理ハードウェア層で走る前記Ｈｏｓｔと、前記Ｈｏｓｔ上で走る少なくとも１つの仮想マシンＶＭと、前記少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを備え、前記物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを備え、前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、前記Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを備え、前記少なくとも１つのＶＭは第ｋのＶＭを備え、前記第ｊの物理入出力デバイスは前記第ｋのＶＭに向き、前記Ｈｏｓｔは、
前記第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するように構成された第１の判定ユニットであって、前記Ｕ個の標的ｐＣＰＵが、前記第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉの仮想割込みが前記第ｉの物理割込みに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、第１の判定ユニットと、
前記第ｎのｐＣＰＵを使用して前記第ｉの物理割込みを処理するように構成された第２の呼出しユニットと、
前記第ｉの物理割込みに応じて前記第ｉの仮想割込みを判定するように構成された第３の判定ユニットと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するように構成された第４の判定ユニットであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉの仮想割込みを実行する、第４の判定ユニットと
を備え、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とするＨｏｓｔ。
【請求項１２】
前記第１の判定ユニットは、前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
を行うようにさらに構成されることを特徴とする請求項１１に記載のＨｏｓｔ。
【請求項１３】
前記第１の判定ユニットは、前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
を行うようにさらに構成されることを特徴とする請求項１１に記載のＨｏｓｔ。
【請求項１４】
前記第４の判定ユニットは、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉの仮想割込みを実行する、判定するステップ、または
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉの仮想割込みを実行する、判定するステップと
を行うように特に構成されることを特徴とする請求項１３に記載のＨｏｓｔ。
【請求項１５】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、前記第４の判定ユニットは、仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む
ことを特徴とする請求項１４に記載のＨｏｓｔ。
【請求項１６】
ホストＨｏｓｔであって、前記Ｈｏｓｔは計算ノードに適用され、前記計算ノードは、物理ハードウェア層と、前記物理ハードウェア層で走る前記Ｈｏｓｔと、前記Ｈｏｓｔ上で走るＹ個の仮想マシンＶＭと、前記Ｈｏｓｔ上で走るＹ個の仮想ホストｖｈｏｓｔカーネルスレッドと、前記少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを備え、前記物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを備え、前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、前記Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを備え、前記Ｙ個のＶＭは第ｋのＶＭを備え、前記第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを備え、前記第ｉのｖｉｒｔｉｏデバイスは前記Ｙ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、前記Ｈｏｓｔは、
前記第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵからの第ｎのｐＣＰＵを判定するように構成された第１の判定ユニットであって、前記Ｕ個の標的ｐＣＰＵが、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みが前記第ｉのｖｈｏｓｔスレッドに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、第１の判定ユニットと、
前記第ｎのｐＣＰＵを使用して前記第ｉのｖｈｏｓｔスレッドを処理するように構成された第２の呼出しユニットと、
前記第ｉのｖｈｏｓｔスレッドに応じて前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを判定するように構成された第３の判定ユニットと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するように構成された第４の判定ユニットであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを実行する、第４の判定ユニットと
を備え、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とするＨｏｓｔ。
【請求項１７】
前記第１の判定ユニットは、前記Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
を行うようにさらに構成されることを特徴とする請求項１６に記載のＨｏｓｔ。
【請求項１８】
前記第１の判定ユニットは、前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
を行うようにさらに構成されることを特徴とする請求項１６に記載のＨｏｓｔ。
【請求項１９】
前記第４の判定ユニットは、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを実行する、判定するステップ、または
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを実行する、判定するステップと
を行うように特に構成されることを特徴とする請求項１８に記載のＨｏｓｔ。
【請求項２０】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、
前記第４の判定ユニットは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、前記ｖｉｒｔｉｏデバイスの前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含むことを特徴とする請求項１９に記載のＨｏｓｔ。
【請求項２１】
第ｊの物理入出力デバイスを備えるＹ個の物理入出力デバイスと、
Ｘ個の物理中央処理装置ｐＣＰＵと、
前記Ｘ個の物理中央処理装置ｐＣＰＵのそれぞれおよび前記Ｙ個の物理入出力デバイスのそれぞれに接続されたメモリであって、前記Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、前記メモリ内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリと、ホストＨｏｓｔと、少なくとも１つの仮想マシンＶと、前記少なくとも１つの仮想マシンＶＭ上で仮想化された仮想ハードウェアと
を備える計算ノードであって、
前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、前記少なくとも１つのＶＭは第ｋのＶＭを備え、前記第ｊの物理入出力デバイスは前記第ｋのＶＭに向き、
前記Ｈｏｓｔは、
前記第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、前記Ｕ個の標的ｐＣＰＵが、前記第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉの仮想割込みが前記第ｉの物理割込みに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、判定するステップと、
前記第ｎのｐＣＰＵを使用して前記第ｉの物理割込みを処理するステップと、
前記第ｉの物理割込みに応じて前記第ｉの仮想割込みを判定するステップと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉの仮想割込みを実行する、判定するステップと
を行うように構成され、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とする計算ノード。
【請求項２２】
前記Ｈｏｓｔは、前記Ｕ個の標的ｐＣＰＵと前記第ｉの物理割込みとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を、
前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定するようにさらに構成されることを特徴とする請求項２１に記載の計算ノード。
【請求項２３】
前記Ｈｏｓｔは、前記Ｕ個の標的ｐＣＰＵと前記第ｉの物理割込みとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を、
前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定するようにさらに構成されることを特徴とする請求項２１に記載の計算ノード。
【請求項２４】
前記Ｖ個の標的ｖＣＰＵから前記第ｍのｖＣＰＵを判定する態様で、前記Ｈｏｓｔは、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップ、または
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップと
を行うように特に構成されることを特徴とする請求項２３に記載の計算ノード。
【請求項２５】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、前記Ｈｏｓｔは、仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含むことを特徴とする請求項２４に記載の計算ノード。
【請求項２６】
Ｘ個の物理中央処理装置ｐＣＰＵと、
前記Ｘ個の物理中央処理装置ｐＣＰＵに接続されたメモリであって、前記Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、前記メモリ内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリと、ホストＨｏｓｔと、Ｙ個の仮想マシンＶＭと、Ｙ個の仮想ホストｖｈｏｓｔカーネルスレッドと、前記少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを備える計算ノードであって、前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、前記Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを備え、前記Ｙ個のＶＭは第ｋのＶＭを備え、前記第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを備え、前記第ｉのｖｉｒｔｉｏデバイスは前記Ｙ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、
前記Ｈｏｓｔは、
前記第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、前記Ｕ個の標的ｐＣＰＵが、前記第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みが前記第ｉのｖｈｏｓｔスレッドに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、判定するステップと、
前記第ｎのｐＣＰＵを使用して前記第ｉのｖｈｏｓｔスレッドを処理するステップと、
前記第ｉのｖｈｏｓｔスレッドに応じて前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを判定するステップと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを実行する、判定するステップと
を行うように構成され、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とする計算ノード。
【請求項２７】
前記Ｈｏｓｔは、前記Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の前記類似性関係を、
前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定するようにさらに構成されることを特徴とする請求項２６に記載の計算ノード。
【請求項２８】
前記Ｈｏｓｔは、前記Ｕ個の標的ｐＣＰＵと前記第ｉの物理割込みとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を、
前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定するようにさらに構成されることを特徴とする請求項２６に記載の計算ノード。
【請求項２９】
前記Ｖ個の標的ｖＣＰＵから前記第ｍのｖＣＰＵを判定する態様で、前記Ｈｏｓｔは、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップ、または
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップと
を行うように特に構成されることを特徴とする請求項２８に記載の計算ノード。
【請求項３０】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、前記Ｈｏｓｔは、
ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、前記ｖｉｒｔｉｏデバイスの前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含むことを特徴とする請求項２９に記載の計算ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信技術の分野に関し、より詳細には、仮想化プラットホームによって割込みを処理する方法および関連デバイスに関する。
【背景技術】
【０００２】
仮想化技術は、底層のハードウェアデバイスが上層のオペレーティングシステムおよびアプリケーションプログラムから分離される非干渉化技術である。仮想化技術は、現在普及しているクラウドコンピューティング（Cloud Computing）プラットホームに対応する重要な底層技術の１つとして、物理デバイスの資源利用を大きく改善することがある。従来の物理サーバと比較されると、仮想マシンは、分離およびカプセル化に関してより良好な性能を有し、仮想マシン全体の情報を仮想ディスク画像（VDI、Virtual Disk Image）内に保存することがある。これは、仮想マシンに対するスナップショット、バックアップ、クローン、および分配などの動作を容易にすることがある。仮想化によってオーバヘッドが生成され、それによって、構成が同じ場合、仮想マシンの性能は、物理マシンの性能より低くなる。仮想マシンの性能をどのように実質上改善するかは、この分野で解決される必要のある問題である。
【発明の概要】
【０００３】
本発明の実施形態は、割込みオーバヘッドが仮想化プラットホームに与える影響を低減させ、それによって仮想マシンの性能を実質上改善することができる、仮想化プラットホームによって割込みを処理する方法および関連デバイスを提供する。
【０００４】
第１の態様によれば、本発明の一実施形態は、仮想化プラットホームによって割込みを処理する方法を提供し、この方法は計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るホストＨｏｓｔと、Ｈｏｓｔ上で走る少なくとも１つの仮想マシンＶＭと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、この方法はＨｏｓｔによって実行され、この方法は、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みが第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、判定するステップと、第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理するステップと、第ｉの物理割込みに応じて第ｉの仮想割込みを判定するステップと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップとを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【０００５】
第１の態様を参照して、第１の態様の第１の可能な実装形態では、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。
【０００６】
第１の態様を参照して、第１の態様の第２の可能な実装形態では、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。
【０００７】
第１の態様の第２の可能な実装形態を参照して、第１の態様の第３の可能な実装形態では、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを含む。
【０００８】
第１の態様の第３の可能な実装形態を参照して、第１の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップは、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【０００９】
第２の態様によれば、本発明の一実施形態は、仮想化プラットホームによって割込みを処理する方法を提供し、この方法は計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るホストＨｏｓｔと、Ｈｏｓｔ上で走るＹ個の仮想マシンＶＭと、Ｈｏｓｔ上で走るＹ個の仮想ホストｖｈｏｓｔカーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、この方法はＨｏｓｔによって実行され、この方法は、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みが第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、判定するステップと、第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理するステップと、第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定するステップと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００１０】
第２の態様を参照して、第２の態様の第１の可能な実装形態では、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。
【００１１】
第２の態様を参照して、第２の態様の第２の可能な実装形態では、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第Ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。
【００１２】
第２の態様の第２の可能な実装形態を参照して、第２の態様の第３の可能な実装形態では、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを含む。
【００１３】
第２の態様の第３の可能な実装形態を参照して、第２の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【００１４】
第３の態様によれば、本発明の一実施形態は、ホストＨｏｓｔを提供し、Ｈｏｓｔは計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るＨｏｓｔと、Ｈｏｓｔ上で走る少なくとも１つの仮想マシンＶＭと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、Ｈｏｓｔは、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するように構成された第１の判定ユニットであって、Ｕ個の標的ｐＣＰＵが、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みが第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、第１の判定ユニットと、第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理するように構成された第２の呼出しユニットと、第ｉの物理割込みに応じて第ｉの仮想割込みを判定するように構成された第３の判定ユニットと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するように構成された第４の判定ユニットであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、第４の判定ユニットとを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００１５】
第３の態様を参照して、第３の態様の第１の可能な実装形態では、第１の判定ユニットは、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。
【００１６】
第３の態様を参照して、第３の態様の第２の可能な実装形態では、第１の判定ユニットは、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。
【００１７】
第３の態様の第２の可能な実装形態を参照して、第３の態様の第３の可能な実装形態では、第４の判定ユニットは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップとを行うように特に構成される。
【００１８】
第３の態様の第３の可能な実装形態を参照して、第３の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、第４の判定ユニットは、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【００１９】
第４の態様によれば、本発明の一実施形態は、ホストＨｏｓｔを提供し、Ｈｏｓｔは計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るＨｏｓｔと、Ｈｏｓｔ上で走るＹ個の仮想マシンＶＭと、Ｈｏｓｔ上で走るＹ個の仮想ホストｖｈｏｓｔカーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、Ｈｏｓｔは、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するように構成された第１の判定ユニットであって、Ｕ個の標的ｐＣＰＵが、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みが第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、第１の判定ユニットと、第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理するように構成された第２の呼出しユニットと、第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定するように構成された第３の判定ユニットと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するように構成された第４の判定ユニットであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、第４の判定ユニットとを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００２０】
第４の態様を参照して、第４の態様の第１の可能な実装形態では、第１の判定ユニットは、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。
【００２１】
第４の態様を参照して、第４の態様の第２の可能な実装形態では、第１の判定ユニットは、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。
【００２２】
第４の態様の第２の可能な実装形態を参照して、第４の態様の第３の可能な実装形態では、第４の判定ユニットは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを行うように特に構成される。
【００２３】
第４の態様の第３の可能な実装形態を参照して、第４の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、第４の判定ユニットは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【００２４】
第５の態様によれば、本発明の一実施形態は、計算ノードを提供し、計算ノードは、第ｊの物理入出力デバイスを含むＹ個の物理入出力デバイスと、Ｘ個の物理中央処理装置ｐＣＰＵと、Ｘ個の物理中央処理装置ｐＣＰＵのそれぞれおよびＹ個の物理入出力デバイスのそれぞれに接続されたメモリであって、Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、メモリ内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリと、ホストＨｏｓｔと、少なくとも１つの仮想マシンＶＭと、少なくとも１つの仮想マシンＶＭ、上で仮想化された仮想ハードウェアとを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、Ｈｏｓｔは、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みが第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含み、Ｕが１以上かつＸ以下の正の整数であり、Ｖが１以上かつＺ以下の正の整数である、判定するステップと、第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理するステップと、第ｉの物理割込みに応じて第ｉの仮想割込みを判定するステップと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップとを行うように構成され、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００２５】
第５の態様を参照して、第５の態様の第１の可能な実装形態では、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。
【００２６】
第５の態様を参照して、第５の態様の第２の可能な実装形態では、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。
【００２７】
第５の態様の第２の可能な実装形態を参照して、第５の態様の第３の可能な実装形態では、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定する態様で、Ｈｏｓｔは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを行うように特に構成される。
【００２８】
第５の態様の第３の可能な実装形態を参照して、第５の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、Ｈｏｓｔは、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【００２９】
第６の態様によれば、本発明の一実施形態は、計算ノードを提供し、計算ノードは、Ｘ個の物理中央処理装置ｐＣＰＵと、Ｘ個の物理中央処理装置ｐＣＰＵに接続されたメモリであって、Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、メモリ内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリと、ホストＨｏｓｔと、Ｙ個の仮想マシンＶＭと、Ｙ個の仮想ホストｖｈｏｓｔカーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、Ｈｏｓｔは、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みが第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含み、Ｕが１以上かつＸ以下の正の整数であり、Ｖが１以上かつＺ以下の正の整数である、判定するステップと、第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理するステップと、第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定するステップと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを行うように構成され、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００３０】
第６の態様を参照して、第６の態様の第１の可能な実装形態では、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。
【００３１】
第６の態様を参照して、第６の態様の第２の可能な実装形態では、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。
【００３２】
第６の態様の第２の可能な実装形態を参照して、第６の態様の第３の可能な実装形態では、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定する態様で、Ｈｏｓｔは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを行うように特に構成される。
【００３３】
第６の態様の第３の可能な実装形態を参照して、第６の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、Ｈｏｓｔは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【００３４】
本発明の実施形態の一態様では、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉの物理割込みを処理するために使用され、第ｉの仮想割込みは第ｉの物理割込みに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する。上記の技術的解決策によれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させることが、理解されることが可能である。
【００３５】
本発明の実施形態の別の態様では、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉのｖｈｏｓｔスレッドを処理するために使用され、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する。上記の技術的解決策によれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させることが、理解されることが可能である。
【図面の簡単な説明】
【００３６】
本発明の実施形態における技術的解決策をより明確に説明するために、以下、本発明の実施形態について説明するために必要とされる添付の図面について簡単に紹介する。以下の説明の添付の図面は、本発明のいくつかの実施形態のみを示すことが明らかであり、当業者であれば創造的努力なくこれらの添付の図面から他の図面を導出することがある。
【図１】ダイレクトモードの概略図である。
【図２】フロント−バックエンドモードの概略図である。
【図３】本発明の一実施形態による仮想化プラットホームによって割込みを処理する方法の概略的な流れ図である。
【図４】本発明の一実施形態による仮想割込み、物理割込み、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の概略図である。
【図５】本発明の一実施形態による仮想割込み、物理割込み、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の別の概略図である。
【図６】本発明による仮想化プラットホームによって割込みを処理する別の方法の概略的な流れ図である。
【図７】本発明の一実施形態によるｖｉｒｔｉｏデバイスの仮想割込み、ｖｈｏｓｔスレッド、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の概略図である。
【図８】本発明の一実施形態によるｖｉｒｔｉｏデバイスの仮想割込み、ｖｈｏｓｔスレッド、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の別の概略図である。
【図９】本発明の一実施形態によるホストＨｏｓｔの構造ブロック図である。
【図１０】本発明の一実施形態による別のホストＨｏｓｔの構造ブロック図である。
【図１１】本発明の一実施形態による計算ノードの構造ブロック図である。
【図１２】本発明の一実施形態による別の計算ノードの構造ブロック図である。
【発明を実施するための形態】
【００３７】
以下、本発明の実施形態における技術的解決策について、本発明の実施形態における添付の図面を参照して、はっきりと詳細に説明する。記載の実施形態は、本発明の実施形態のすべてではなくいくつかにすぎないことが明らかである。当業者であれば創造的努力なく本発明の実施形態に基づいて得られる他のすべての実施形態は、本発明の保護範囲内に入るものとする。
【００３８】
本発明の実施形態の理解を容易にするために、本発明の実施形態について説明するために紹介されることがあるいくつかの要素について、本明細書にまず説明される。
【００３９】
仮想マシン
仮想マシンソフトウェアを使用することによって、１つの物理計算ノード上で１または複数の計算ノードがシミュレートされることがある。物理計算ノードは、サーバ、デスクトップコンピュータ、携帯型コンピュータなどがありうる。シミュレートされた計算ノードは、仮想マシン（Virtual Machine、VM）と呼ばれる。物理計算ノードは、ホストと呼ばれる。仮想マシンは、本当の計算ノードのように動作することがある。仮想マシン上には、オペレーティングシステムおよびアプリケーションプログラムが導入されることがある。仮想マシンはまた、ネットワーク資源にアクセスしてもまたよい。仮想マシン上で走るオペレーティングシステムは、集合的に、仮想オペレーティングシステムと呼ばれる。プログラムは、本当の計算ノードのオペレーティングシステム内で走るように、仮想オペレーティングシステム内で走る。仮想ハードウェアは、仮想マシン上でさらに仮想化されることがある。具体的には、仮想化は、ホスト（Host）によってＶＭ上で仮想中央処理装置（virtual Central Processing Unit、vCPU）などの仮想ハードウェアを仮想化することによって実施される。ｖＣＰＵは、仮想マシン内で走るプログラムを処理するために使用される。１または複数のｖＣＰＵが、物理計算ノード内の１つの中央処理装置（Central Processing Unit、CPU）に対応することがある。物理計算ノード内のＣＰＵは、物理ＣＰＵ（physical CPU、pCPU）と呼ばれることがある。ｐＣＰＵは、ゲスト（guest）状態およびホスト（host）状態を有することがある。仮想マシンが走っているとき、ｐＣＰＵはゲスト状態にある。特殊な命令または外部からの割込みのため、ｐＣＰＵは、ゲスト状態からホスト状態へ切り替わることがある。このプロセスは、仮想マシン出口（VM-Exit）と呼ばれることがある。
【００４０】
仮想デバイスの実装形態は、ダイレクトモードおよびフロント−バックエンドモードを含むことがある。
【００４１】
ダイレクトモード
パススルー（passthrough）モードとも呼ばれることがあるダイレクト（direct）モードは、ホストが特定の仮想マシンに対するデバイス分離を提供し、したがって特定の物理入出力デバイスが、特定の仮想マシンによって排他的に使用されることができることを意味する。ダイレクトモードでは、仮想割込みを処理するｖＣＰＵに対応するｐＣＰＵが、仮想割込みに対応する物理割込みを処理するｐＣＰＵと一貫しない場合、余剰プロセッサ間割込み（Inter-Processor Interrupt、IPI）によるＶＭ−Ｅｘｉｔが引き起こされる。
【００４２】
フロント−バックエンドモード
フロント−バックエンド（ドライバ分割）モードは、仮想デバイスドライバが、フロントエンドドライバおよびバックエンドドライバの協調によって実施されることを意味し、フロントエンドドライバは仮想マシン内にあり、バックエンドドライバはホスト内にある。フロントエンドドライバおよびバックエンドドライバは、メモリを共用してデータ伝送を実行する。ソフトウェアのみを使用することによってシミュレートされるデバイスと比較されると、フロント−バックエンド駆動モードは、より高い抽象レベルおよびより良好な性能を有する。フロント−バックエンドモードでは、各仮想マシンは、準仮想化されたドライバ（virtio）（略してｖｉｒｔｉｏデバイス）を使用するデバイスを有する。各ｖｉｒｔｉｏデバイスは、対応する仮想ホスト（vhost）カーネルスレッドを有し、ｖｈｏｓｔカーネルスレッドは、ホスト内で走る。ｖｈｏｓｔカーネルスレッドは、対応するｖｉｒｔｉｏデバイスのパケットを処理するために使用される。フロント−バックエンドモードでは、ｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵに対応するｐＣＰＵが、ｖｉｒｔｉｏデバイスの仮想割込みに対応するｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵと一貫しない場合、余剰ＩＰＩによるＶＭ−Ｅｘｉｔが引き起こされる。
【００４３】
図１は、ダイレクトモードの概略図である。図１に示されるように、計算ノード１００内で、第１の仮想マシン１０１が、第１の物理入出力デバイス１１１を排他的に占有することがあり、第２の仮想マシン１０２が、第２の物理入出力デバイス１１２を排他的に占有することがある。図１に示されるダイレクトモードを使用する仮想マシンには、図３に示される方法が適用されることがある。
【００４４】
図２は、フロント−バックエンドモードの概略図である。図２に示されるように、計算ノード２００内の第１のｖｉｒｔｉｏデバイス２１１が第１のｖｈｏｓｔスレッド２１２に対応し、計算ノード２００内の第２のｖｉｒｔｉｏデバイス２２１が第２のｖｈｏｓｔスレッド２２２に対応し、第１のｖｉｒｔｉｏデバイスは第１の仮想マシン内のｖｉｒｔｉｏデバイスであり、第２のｖｉｒｔｉｏデバイスは第２の仮想マシン２１１内のｖｉｒｔｉｏデバイスである。図２に示されるフロント−バックエンドモードを使用する仮想マシンには、図６に示される方法が適用されることがある。
【００４５】
図３は、本発明の一実施形態による仮想化プラットホームによって割込みを処理する方法の概略的な流れ図である。この方法は計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るホストＨｏｓｔと、Ｈｏｓｔ上で走る少なくとも１つの仮想マシンＶＭと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、この方法はＨｏｓｔによって実行される。
【００４６】
３０１．第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定する。Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数である。
【００４７】
３０２．第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理する。
【００４８】
３０３．第ｉの物理割込みに応じて第ｉの仮想割込みを判定する。
【００４９】
３０４．Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定し、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行し、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００５０】
本発明のこの実施形態では、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉの物理割込みを処理するために使用され、第ｉの仮想割込みは第ｉの物理割込みに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行することが、理解されることができる。したがって、本発明のこの実施形態における方法によれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることができ、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００５１】
ホストは、仮想マシン管理プログラムを使用することによって、図３に示される方法を実施することがある。仮想マシン管理プログラムはまた、仮想マシンモニタ（Virtual Machine Monitor、VMM）またはハイパーバイザ（hypervisor）と呼ばれてもまたよい。典型的なＶＭＭは、ＶＭｗａｒｅ  ＥＳＸ、ＸＥＮ、ＫＶＭ／Ｑｅｍｕなどである。
【００５２】
具体的には、ｐＣＰＵが物理割込みとの類似性関係を有することは、このｐＣＰＵがこの物理割込みを処理することができることを示す。ｖＣＰＵが仮想割込みとの類似性関係を有することは、このｖＣＰＵがこの仮想割込みを処理することができることを示す。ｐＣＰＵがｖＣＰＵとの類似性関係を有することは、このｐＣＰＵ上でこのｖＣＰＵが走ることができることを示す。したがって、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係に応じて、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定される。
【００５３】
任意選択で、一実施形態として、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、物理割込みが生じた場合、物理割込みおよび仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が設定されている場合、対応する物理割込みおよび仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走る。
【００５４】
任意選択で、別の実施形態として、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、物理割込みが生じた場合、物理割込みおよび仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が設定されている場合、対応する物理割込みおよび仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走ることがある。
【００５５】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを含む。この場合、仮想割込みを処理するために使用されるｖＣＰＵが、物理割込みを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、物理割込みを処理するｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されてもまたよい。
【００５６】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップは、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＵ上で走るかどうかを容易かつ迅速に判定することができる。
【００５７】
図４は、本発明の一実施形態による仮想割込み、物理割込み、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の概略図である。図４に示されるように、第１の物理割込みが、第１の仮想割込みに対応する。第１の仮想割込みは、第４のｖＣＰＵとの類似性関係を有する。第４のｖＣＰＵは、第３のｐＣＰＵとの類似性関係を有する。この場合、第３のｐＣＰＵは、第１の物理割込みに結合されてよく、その結果、これら２つは、類似性関係を有する。第１の物理割込みが生じたとき、第３のｐＣＰＵは、第１の物理割込みを処理することがある。次いで、第１の物理割込みに対応する第１の仮想割込みおよび第１の仮想割込みを処理するために使用されるｖＣＰＵが発見される。第４のｖＣＰＵが第３のｐＣＰＵ上で走るとき、第４のｖＣＰＵは、第１の物理割込みに対応する第１の仮想割込みを処理するために直接使用されることがある。このようにして、ｖＣＰＵが走るｐＣＰＵが、物理割込みが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。
【００５８】
図５は、本発明の一実施形態による仮想割込み、物理割込み、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の別の概略図である。図５に示されるように、第１の物理割込みは、第１の仮想割込みに対応する。第４のｖＣＰＵおよび第５のｖＣＰＵは、第３のｐＣＰＵおよび第４のｐＣＰＵの両方との類似性関係を有する。言い換えれば、第４のｖＣＰＵおよび第５のｖＣＰＵは、第３のｐＣＰＵ上で走ることがあり、または第４のｐＣＰＵ上で走ることがある。たとえば、第１の瞬間に、第４のｖＣＰＵは、第３のｐＣＰＵ上で走り、第５のｖＣＰＵは、第４のｐＣＰＵ上で走る。第２の瞬間に、第４のｖＣＰＵおよび第５のｖＣＰＵは、第３のｐＣＰＵ上で同時に走ることがある。加えて、第４のｖＣＰＵおよび第５のｖＣＰＵは、第１の仮想割込みとの類似性関係を有する。すなわち、第１の仮想割込みは、第４のｖＣＰＵまたは第５のｖＣＰＵによって処理されることがある。この場合、第３のｐＣＰＵおよび第４のｐＣＰＵはどちらも、第１の物理割込みに結合されてよく、その結果、これら２つは、類似性関係を有する。第１の物理割込みが生じたとき、Ｈｏｓｔは、第３のｐＣＰＵおよび第４のｐＣＰＵからｐＣＰＵを選択して、第１の物理割込みを処理することがある。次いで、Ｈｏｓｔは、第１の物理割込みに対応する第１の仮想割込みおよび第１の仮想割込みを処理するために使用されるｖＣＰＵを発見し、このｖＣＰＵを使用して第１の仮想割込みを処理する。仮想割込みを処理するために使用されるｖＣＰＵは、物理割込みを処理するために使用されるｐＣＰＵ上で走ることがある。したがって、ｖＣＰＵが走るｐＣＰＵが、物理割込みが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。
【００５９】
図６は、本発明による仮想化プラットホームによって割込みを処理する別の方法の概略的な流れ図である。図６に示される方法は計算ノードに適用されることがある。計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るホストＨｏｓｔと、Ｈｏｓｔ上で走るＹ個の仮想マシンＶＭと、Ｈｏｓｔ上で走るＹ個の仮想ホスト、ｖｈｏｓｔ、カーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、この方法はＨｏｓｔによって実行される。
【００６０】
６０１．第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定する。Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数である。
【００６１】
６０２．第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理する。
【００６２】
６０３．第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定する。
【００６３】
６０４．Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定する。その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行し、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００６４】
本発明のこの実施形態では、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉのｖｈｏｓｔスレッドを処理するために使用され、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する。上記の技術的解決策によれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理されるｖｉｒｔｉｏデバイスの仮想割込みに対応するｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させることが、理解されることが可能である。
【００６５】
ホストは、仮想マシン管理プログラムを使用することによって、図６に示される方法を実施することがある。仮想マシン管理プログラムは、仮想マシンモニタ（Virtual Machine Monitor、VMM）またはハイパーバイザ（hypervisor）と呼ばれてもまたよい。典型的なＶＭＭは、ＶＭｗａｒｅ  ＥＳＸ、ＸＥＮ、ＫＶＭ／Ｑｅｍｕなどである。
【００６６】
具体的には、ｐＣＰＵがｖｈｏｓｔスレッドとの類似性関係を有することは、このｐＣＰＵがこのｖｈｏｓｔスレッドを処理することができることを示す。ｖＣＰＵがｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有することは、このｖＣＰＵがこのｖｉｒｔｉｏデバイスの仮想割込みを処理することができることを示す。ｐＣＰＵがｖＣＰＵとの類似性関係を有することは、このｐＣＰＵ上でこのｖＣＰＵが走ることができることを示す。したがって、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係に応じて、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定される。
【００６７】
任意選択で、一実施形態として、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｉｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走り、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応する。
【００６８】
任意選択で、別の実施形態として、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｉｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走ることがあり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応する。
【００６９】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを含む。この場合、ｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵが、ｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、ｖｈｏｓｔスレッドを処理するｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されてもまたよい。
【００７０】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＵ上で走るかどうかを容易かつ迅速に判定することができる。
【００７１】
図７は、本発明の一実施形態によるｖｉｒｔｉｏデバイスの仮想割込み、ｖｈｏｓｔスレッド、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の概略図である。図７に示されるように、第１のｖｈｏｓｔスレッドが、第１のｖｉｒｔｉｏデバイスの仮想割込みに対応する。第４のｖＣＰＵは、第１のｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有する。第３のｐＣＰＵは、第４のｖＣＰＵとの類似性関係を有する。この場合、第１のｖｈｏｓｔスレッドは、第３のｐＣＰＵに結合されてよく、その結果、これら２つは、類似性関係を有する。第１のｖｈｏｓｔスレッドが生じたとき、第３のｐＣＰＵは、第１のｖｈｏｓｔスレッドを処理することがある。次いで、第１のｖｉｒｔｉｏデバイスの仮想割込みおよび第１のｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵが発見され、第１のｖｉｒｔｉｏデバイスの仮想割込みは、第１のｖｈｏｓｔスレッドに対応する。第４のｖＣＰＵが第３のｐＣＰＵ上で走るとき、第４のｖＣＰＵは、第１のｖｉｒｔｉｏデバイスの仮想割込みを処理するために直接使用されることがあり、第１のｖｉｒｔｉｏデバイスの仮想割込みは、第１のｖｈｏｓｔスレッドに対応する。このようにして、ｖＣＰＵが走るｐＣＰＵが、ｖｈｏｓｔスレッドが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。
【００７２】
図８は、本発明の一実施形態によるｖｉｒｔｉｏデバイスの仮想割込み、ｖｈｏｓｔスレッド、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の別の概略図である。図８に示されるように、第１のｖｈｏｓｔスレッドは、第１のｖｉｒｔｉｏデバイスの仮想割込みに対応する。第３のｐＣＰＵおよび第４のｐＣＰＵは、第４のｖＣＰＵおよび第５のｖＣＰＵの両方との類似性関係を有する。言い換えれば、第４のｖＣＰＵおよび第５のｖＣＰＵは、第３のｐＣＰＵ上で走ることがあり、または第４のｐＣＰＵ上で走ることがある。たとえば、第１の瞬間に、第４のｖＣＰＵは、第３のｐＣＰＵ上で走り、第５のｖＣＰＵは、第４のｐＣＰＵ上で走る。第２の瞬間に、第４のｖＣＰＵおよび第５のｖＣＰＵは、第３のｐＣＰＵ上で同時に走ることがある。加えて、第４のｖＣＰＵおよび第５のｖＣＰＵは、第１のｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有する。すなわち、第１のｖｉｒｔｉｏデバイスの仮想割込みは、第４のｖＣＰＵまたは第５のｖＣＰＵによって処理されることがある。この場合、第３のｐＣＰＵおよび第４のｐＣＰＵはどちらも、第１のｖｈｏｓｔスレッドに結合されてよく、その結果、これら２つは、類似性関係を有する。次いで、第１のｖｈｏｓｔスレッドが生じたとき、Ｈｏｓｔは、第３のｐＣＰＵおよび第４のｐＣＰＵからｐＣＰＵを選択して、第１のｖｈｏｓｔスレッドを処理することがある。次いで、Ｈｏｓｔは、第１のｖｉｒｔｉｏデバイスの仮想割込みおよび第１のｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵを発見し、このｖＣＰＵを使用して第１のｖｉｒｔｉｏデバイスの仮想割込みを処理し、第１のｖｉｒｔｉｏデバイスの仮想割込みは、第１のｖｈｏｓｔスレッドに対応する。ｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵは、ｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵ上で走ることがある。したがって、ｖＣＰＵが走るｐＣＰＵが、ｖｈｏｓｔスレッドが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。
【００７３】
図９は、本発明の一実施形態によるホストＨｏｓｔの構造ブロック図である。図９に示されるＨｏｓｔ９００は、図３に示されるすべてのステップを実行することができる。具体的には、Ｈｏｓｔは計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るＨｏｓｔと、Ｈｏｓｔ上で走る少なくとも１つの仮想マシンＶＭと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、Ｈｏｓｔは、第１の判定ユニット９０１、第２の呼出しユニット９０２、第３の判定ユニット９０３、および第４の判定ユニット９０４を含む。
【００７４】
第１の判定ユニット９０１は、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するように構成され、Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数である。
【００７５】
第２の呼出しユニット９０２は、第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理するように構成される。
【００７６】
第３の判定ユニット９０３は、第ｉの物理割込みに応じて第ｉの仮想割込みを判定するように構成される。
【００７７】
第４の判定ユニット９０４は、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するように構成され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行し、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００７８】
本発明のこの実施形態におけるＨｏｓｔによれば、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉの物理割込みを処理するために使用され、第ｉの仮想割込みは第ｉの物理割込みに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行することが、理解されることが可能である。したがって、図９に示されるＨｏｓｔによれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００７９】
任意選択で、一実施形態として、第１の判定ユニット９０１は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。このようにして、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が判定されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走る。
【００８０】
任意選択で、別の実施形態として、第１の判定ユニット９０１は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。このようにして、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が判定されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走ることがある。
【００８１】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、第４の判定ユニット９０４は、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップとを行うように特に構成される。この場合、仮想割込みを処理するために使用されるｖＣＰＵが、物理割込みを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、物理割込みが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されることがある。したがって、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、最大限回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００８２】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、第４の判定ユニット９０４は、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＵ上で走るかどうかを容易かつ迅速に判定することができる。
【００８３】
図１０は、本発明の一実施形態による別のホストＨｏｓｔの構造ブロック図である。図１０に示されるＨｏｓｔ１０００は、図６に示されるすべてのステップを実行することができる。Ｈｏｓｔ１０００は計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るＨｏｓｔと、Ｈｏｓｔ上で走るＹ個の仮想マシンＶＭと、Ｈｏｓｔ上で走るＹ個の仮想ホストｖｈｏｓｔカーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドの第ｊのｖｈｏｓｔカーネルスレッドに対応し、Ｈｏｓｔは、第１の判定ユニット１００１、第２の呼出しユニット１００２、第３の判定ユニット１００３、および第４の判定ユニット１００５を含む。
【００８４】
第１の判定ユニット１００１は、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するように構成され、Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数である。
【００８５】
第２の呼出しユニット１００２は、第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理するように構成される。
【００８６】
第３の判定ユニット１００３は、第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定するようにさらに構成される。
【００８７】
第４の判定ユニット１００４は、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するようにさらに構成され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行し、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００８８】
本発明のこの実施形態で提供されるホストＨｏｓｔによれば、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉのｖｈｏｓｔスレッドを処理するために使用され、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行することが、理解されることが可能である。したがって、図１０に示されるＨｏｓｔによれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理されるｖｉｒｔｉｏデバイスの仮想割込みに対応するｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００８９】
任意選択で、一実施形態として、第１の判定ユニット１００１は、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｉｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走り、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応する。
【００９０】
任意選択で、別の実施形態として、第１の判定ユニット１００１は、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｉｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走ることがあり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応する。
【００９１】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、第４の判定ユニット１００４は、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを行うように特に構成される。この場合、ｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵが、ｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、ｖｈｏｓｔスレッドを処理するｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されてもまたよい。したがって、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、最大限回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００９２】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、第４の判定ユニット１００４は、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＵ上で走るかどうかを容易かつ迅速に判定することができる。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＵ上で走るかどうかを容易かつ迅速に判定することができる。
【００９３】
図１１は、本発明の一実施形態による計算ノードの構造ブロック図である。図１１に示される計算ノードは、図３に示されるすべてのステップを実行することができる。計算ノードは、第ｊの物理入出力デバイスを含むＹ個の物理入出力デバイス１１０１と、Ｘ個の物理中央処理装置ｐＣＰＵ１１０２と、Ｘ個の物理中央処理装置ｐＣＰＵのそれぞれおよびＹ個の物理入出力デバイスのそれぞれに接続されたメモリ１１０３であって、Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、メモリ１１０３内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリ１１０３と、ホストＨｏｓｔと、少なくとも１つの仮想マシンＶＭと、少なくとも１つの仮想マシンＶＭ上で仮想化された仮想ハードウェアとを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、Ｈｏｓｔは、
第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みが第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、判定するステップと、
第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理するステップと、
第ｉの物理割込みに応じて第ｉの仮想割込みを判定するステップと、
Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップとを行うように構成され、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００９４】
本発明のこの実施形態における計算ノードによれば、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉの物理割込みを処理するために使用され、第ｉの仮想割込みは第ｉの物理割込みに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行することが、理解されることが可能である。したがって、図１１に示される計算ノードによれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００９５】
任意選択で、一実施形態として、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、物理割込みが生じた場合、物理割込みおよび仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が設定されている場合、対応する物理割込みおよび仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走る。
【００９６】
任意選択で、別の実施形態として、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、物理割込みが生じた場合、物理割込みおよび仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が設定されている場合、対応する物理割込みおよび仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走ることがある。
【００９７】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定する態様で、Ｈｏｓｔは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを行うように特に構成される。この場合、仮想割込みを処理するために使用されるｖＣＰＵが、物理割込みを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、物理割込みが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されてもまたよい。したがって、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、最大限回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００９８】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、Ｈｏｓｔは、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＵ上で走るかどうかを容易かつ迅速に判定することができる。
【００９９】
図１２は、本発明の一実施形態による別の計算ノードの構造ブロック図である。図１２に示される計算ノード１２００は、図６に示されるすべてのステップを実行することができる。計算ノード１２００は、Ｘ個の物理中央処理装置ｐＣＰＵ１２０１と、Ｘ個の物理中央処理装置ｐＣＰＵに接続されたメモリ１２０２であって、Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、メモリ１２０２内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリ１２０２と、ホストＨｏｓｔと、Ｙ個の仮想マシンＶＭと、Ｙ個の仮想ホストｖｈｏｓｔカーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、Ｈｏｓｔは、
第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みが第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、判定するステップと、
第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理するステップと、
第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定するステップと、
Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを行うように構成され、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【０１００】
本発明のこの実施形態における計算ノードによれば、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉのｖｈｏｓｔスレッドを処理するために使用され、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する。したがって、図１２に示される計算ノードによれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理されるｖｉｒｔｉｏデバイスの仮想割込みに対応するｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【０１０１】
任意選択で、一実施形態として、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｉｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走り、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応する。
【０１０２】
任意選択で、別の実施形態として、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｉｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走ることがあり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは、第ｉのｖｈｏｓｔスレッドに対応する。
【０１０３】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定する態様で、Ｈｏｓｔは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを行うように特に構成される。この場合、ｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵが、ｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、ｖｈｏｓｔスレッドを処理するｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されてもまたよい。したがって、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、最大限回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【０１０４】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、Ｈｏｓｔは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＵ上で走るかどうかを容易かつ迅速に判定することができる。
【０１０５】
上記の実施形態における方法のプロセスのすべてまたはいくつかは、関連ハードウェア（たとえば、プロセッサ）を指示するコンピュータプログラムによって実施されることがあることが、当業者には理解されよう。プログラムは、コンピュータ可読記憶媒体内に記憶されることがある。プログラムが走るとき、上記の実施形態における方法のプロセスが実行される。記憶媒体は、磁気ディスク、光ディスク、読取り専用メモリ（Read-Only Memory、ROM）、またはランダムアクセスメモリ（Random Access Memory、RAM）を含むことがある。
【０１０６】
本明細書に開示される実施形態に記載される例と組み合わせて、電子ハードウェアまたはコンピュータソフトウェアおよび電子ハードウェアの組合せによって、ユニットおよびアルゴリズムステップが実施されることがあることが、当業者には認識されよう。これらの機能が、ハードウェアによって実行されるか、それともソフトウェアによって実行されるかは、技術的解決策の特定の適用および設計制約条件に依存する。当業者であれば、それぞれの特定の適用に対して、記載される機能を実施するために異なる方法を使用することがあるが、そのような実装は、本発明の範囲を超えると見なされるべきでない。
【０１０７】
好都合かつ簡単な説明の目的のため、上記のシステム、装置、およびユニットの詳述される作業プロセスに関して、上記の方法実施形態における対応するプロセスが参照されてよく、詳細は本明細書に繰り返し記載されないことが、当業者にははっきりと理解されよう。
【０１０８】
本出願に提供されるいくつかの実施形態では、開示されるシステム、装置、および方法が、他の態様でも実施されることがあることが、理解されるべきである。たとえば、記載される装置実施形態は、例示にすぎない。たとえば、ユニットの区分は、論理的な機能区分にすぎず、実際の実装では他の区分としてもよい。たとえば、複数のユニットまたは構成要素は、別のシステム内へ組み合わせられてよく、もしくは組み込まれてよく、またはいくつかの特徴は、無視されてよく、もしくは実行されなくてもよい。加えて、表示または議論された相互結合もしくは直接結合または通信接続は、いくつかのインターフェースを通って実施されることがある。装置またはユニット間の間接結合または通信接続は、電子、機械、または他の形式で実施されることがある。
【０１０９】
別個の部分として記載されるユニットは、物理的に別個のものであっても、そうでなくてもよく、ユニットとして表示される部分は、物理ユニットであっても、そうでなくてもよく、１つの位置に配置されてよく、または複数のネットワークユニット上に分散されてもよい。ユニットのいくつかまたはすべては、実施形態の解決策の目的を実現するために、実際の必要に応じて選択されることがある。
【０１１０】
加えて、本発明の実施形態における機能ユニットは、１つの処理ユニット内に組み込まれてよく、またはユニットはそれぞれ、物理的に単独で存在してよく、または２つ以上のユニットが、１つのユニット内へ組み込まれる。
【０１１１】
これらの機能が、ソフトウェア機能ユニットの形で実施され、独立した製品として販売または使用されるとき、これらの機能は、コンピュータ可読記憶媒体内に記憶されることがある。そのような理解に基づいて、本質的に本発明の技術的解決策、または従来技術に寄与する部分、または技術的解決策のいくつかは、ソフトウェア製品の形で実施されることがある。ソフトウェア製品は、記憶媒体内に記憶され、本発明の実施形態に記載される方法のステップのすべてまたはいくつかを実行するようにコンピュータデバイス（パーソナルコンピュータ、サーバ、もしくはネットワークデバイスであることがある）またはプロセッサに指示するいくつかの命令を含む。上記の記憶媒体は、ＵＳＢフラッシュドライブ、取外し可能ハードディスク、読取り専用メモリ（ROM、Read-Only Memory）、ランダムアクセスメモリ（RAM、Random Access Memory）、磁気ディスク、または光ディスクなど、プログラムコードを記憶することができる任意の媒体を含む。
【０１１２】
上記の説明は、本発明の特有の実装形態にすぎず、本発明の保護範囲を限定することが意図されるものではない。本発明に開示される技術範囲内の当業者によれば容易に考えつくあらゆる変更または置換えは、本発明の保護範囲内に入るものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲内にあるものとする。
【図１】
2017518589.tif 000003
【図２】
2017518589.tif 000004
【図３】
2017518589.tif 000005
【図４】
2017518589.tif 000006
【図５】
2017518589.tif 000007
【図６】
2017518589.tif 000008
【図７】
2017518589.tif 000009
【図８】
2017518589.tif 000010
【図９】
2017518589.tif 000011
【図１０】
2017518589.tif 000012
【図１１】
2017518589.tif 000013
【図１２】
2017518589.tif 000014
【手続補正書】
【提出日】平成29年1月16日(2017.1.16)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信技術の分野に関し、より詳細には、仮想化プラットホームによって割込みを処理する方法および関連デバイスに関する。
【背景技術】
【０００２】
仮想化技術は、底層のハードウェアデバイスが上層のオペレーティングシステムおよびアプリケーションプログラムから分離される非干渉化技術である。仮想化技術は、現在普及しているクラウドコンピューティング（Cloud Computing）プラットホームに対応する重要な底層技術の１つとして、物理デバイスの資源利用を大きく改善することがある。従来の物理サーバと比較されると、仮想マシンは、分離およびカプセル化に関してより良好な性能を有し、仮想マシン全体の情報を仮想ディスク画像（VDI、Virtual Disk Image）内に保存することがある。これは、仮想マシンに対するスナップショット、バックアップ、クローン、および分配などの動作を容易にすることがある。仮想化によってオーバヘッドが生成され、それによって、構成が同じ場合、仮想マシンの性能は、物理マシンの性能より低くなる。仮想マシンの性能をどのように実質上改善するかは、この分野で解決される必要のある問題である。
【発明の概要】
【０００３】
本発明の実施形態は、割込みオーバヘッドが仮想化プラットホームに与える影響を低減させ、それによって仮想マシンの性能を実質上改善することができる、仮想化プラットホームによって割込みを処理する方法および関連デバイスを提供する。
【０００４】
第１の態様によれば、本発明の一実施形態は、仮想化プラットホームによって割込みを処理する方法を提供し、この方法は計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るホストＨｏｓｔと、Ｈｏｓｔ上で走る少なくとも１つの仮想マシン、ＶＭ、と、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、この方法はＨｏｓｔによって実行され、この方法は、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みが第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、判定するステップと、第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理するステップと、第ｉの物理割込みに応じて第ｉの仮想割込みを判定するステップと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップとを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【０００５】
第１の態様を参照して、第１の態様の第１の可能な実装形態では、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。
【０００６】
第１の態様を参照して、第１の態様の第２の可能な実装形態では、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。
【０００７】
第１の態様の第２の可能な実装形態を参照して、第１の態様の第３の可能な実装形態では、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを含む。
【０００８】
第１の態様の第３の可能な実装形態を参照して、第１の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップは、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【０００９】
第２の態様によれば、本発明の一実施形態は、仮想化プラットホームによって割込みを処理する方法を提供し、この方法は計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るホストＨｏｓｔと、Ｈｏｓｔ上で走るＹ個の仮想マシン、ＶＭ、と、Ｈｏｓｔ上で走るＹ個の仮想ホスト、ｖｈｏｓｔ、カーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、この方法はＨｏｓｔによって実行され、この方法は、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みが第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、判定するステップと、第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理するステップと、第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定するステップと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００１０】
第２の態様を参照して、第２の態様の第１の可能な実装形態では、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。
【００１１】
第２の態様を参照して、第２の態様の第２の可能な実装形態では、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。
【００１２】
第２の態様の第２の可能な実装形態を参照して、第２の態様の第３の可能な実装形態では、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを含む。
【００１３】
第２の態様の第３の可能な実装形態を参照して、第２の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【００１４】
第３の態様によれば、本発明の一実施形態は、ホストＨｏｓｔを提供し、Ｈｏｓｔは計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るＨｏｓｔと、Ｈｏｓｔ上で走る少なくとも１つの仮想マシン、ＶＭ、と、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、Ｈｏｓｔは、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するように構成された第１の判定ユニットであって、Ｕ個の標的ｐＣＰＵが、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みが第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、第１の判定ユニットと、第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理するように構成された第２の呼出しユニットと、第ｉの物理割込みに応じて第ｉの仮想割込みを判定するように構成された第３の判定ユニットと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するように構成された第４の判定ユニットであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、第４の判定ユニットとを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００１５】
第３の態様を参照して、第３の態様の第１の可能な実装形態では、第１の判定ユニットは、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。
【００１６】
第３の態様を参照して、第３の態様の第２の可能な実装形態では、第１の判定ユニットは、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。
【００１７】
第３の態様の第２の可能な実装形態を参照して、第３の態様の第３の可能な実装形態では、第４の判定ユニットは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップとを行うように特に構成される。
【００１８】
第３の態様の第３の可能な実装形態を参照して、第３の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、第４の判定ユニットは、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【００１９】
第４の態様によれば、本発明の一実施形態は、ホストＨｏｓｔを提供し、Ｈｏｓｔは計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るＨｏｓｔと、Ｈｏｓｔ上で走るＹ個の仮想マシン、ＶＭ、と、Ｈｏｓｔ上で走るＹ個の仮想ホスト、ｖｈｏｓｔ、カーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、Ｈｏｓｔは、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するように構成された第１の判定ユニットであって、Ｕ個の標的ｐＣＰＵが、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みが第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、第１の判定ユニットと、第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理するように構成された第２の呼出しユニットと、第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定するように構成された第３の判定ユニットと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するように構成された第４の判定ユニットであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、第４の判定ユニットとを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００２０】
第４の態様を参照して、第４の態様の第１の可能な実装形態では、第１の判定ユニットは、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。
【００２１】
第４の態様を参照して、第４の態様の第２の可能な実装形態では、第１の判定ユニットは、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。
【００２２】
第４の態様の第２の可能な実装形態を参照して、第４の態様の第３の可能な実装形態では、第４の判定ユニットは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを行うように特に構成される。
【００２３】
第４の態様の第３の可能な実装形態を参照して、第４の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、第４の判定ユニットは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【００２４】
第５の態様によれば、本発明の一実施形態は、計算ノードを提供し、計算ノードは、第ｊの物理入出力デバイスを含むＹ個の物理入出力デバイスと、Ｘ個の物理中央処理装置ｐＣＰＵと、Ｘ個の物理中央処理装置ｐＣＰＵのそれぞれおよびＹ個の物理入出力デバイスのそれぞれに接続されたメモリであって、Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、メモリ内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリと、ホストＨｏｓｔと、少なくとも１つの仮想マシン、ＶＭと、少なくとも１つの仮想マシン、ＶＭ、上で仮想化された仮想ハードウェアとを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、Ｈｏｓｔは、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みが第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含み、Ｕが１以上かつＸ以下の正の整数であり、Ｖが１以上かつＺ以下の正の整数である、判定するステップと、第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理するステップと、第ｉの物理割込みに応じて第ｉの仮想割込みを判定するステップと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップとを行うように構成され、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００２５】
第５の態様を参照して、第５の態様の第１の可能な実装形態では、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。
【００２６】
第５の態様を参照して、第５の態様の第２の可能な実装形態では、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。
【００２７】
第５の態様の第２の可能な実装形態を参照して、第５の態様の第３の可能な実装形態では、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定する態様で、Ｈｏｓｔは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを行うように特に構成される。
【００２８】
第５の態様の第３の可能な実装形態を参照して、第５の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、Ｈｏｓｔは、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【００２９】
第６の態様によれば、本発明の一実施形態は、計算ノードを提供し、計算ノードは、Ｘ個の物理中央処理装置ｐＣＰＵと、Ｘ個の物理中央処理装置ｐＣＰＵに接続されたメモリであって、Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、メモリ内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリと、ホストＨｏｓｔと、Ｙ個の仮想マシン、ＶＭと、Ｙ個の仮想ホスト、ｖｈｏｓｔ、カーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、Ｈｏｓｔは、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みが第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含み、Ｕが１以上かつＸ以下の正の整数であり、Ｖが１以上かつＺ以下の正の整数である、判定するステップと、第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理するステップと、第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定するステップと、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを行うように構成され、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００３０】
第６の態様を参照して、第６の態様の第１の可能な実装形態では、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。
【００３１】
第６の態様を参照して、第６の態様の第２の可能な実装形態では、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。
【００３２】
第６の態様の第２の可能な実装形態を参照して、第６の態様の第３の可能な実装形態では、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定する態様で、Ｈｏｓｔは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを行うように特に構成される。
【００３３】
第６の態様の第３の可能な実装形態を参照して、第６の態様の第４の可能な実装形態では、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、Ｈｏｓｔは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。
【００３４】
本発明の実施形態の一態様では、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉの物理割込みを処理するために使用され、第ｉの仮想割込みは第ｉの物理割込みに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する。上記の技術的解決策によれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させることが、理解されることが可能である。
【００３５】
本発明の実施形態の別の態様では、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉのｖｈｏｓｔスレッドを処理するために使用され、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する。上記の技術的解決策によれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させることが、理解されることが可能である。
【図面の簡単な説明】
【００３６】
本発明の実施形態における技術的解決策をより明確に説明するために、以下、本発明の実施形態について説明するために必要とされる添付の図面について簡単に紹介する。以下の説明の添付の図面は、本発明のいくつかの実施形態のみを示すことが明らかであり、当業者であれば創造的努力なくこれらの添付の図面から他の図面を導出することがある。
【図１】ダイレクトモードの概略図である。
【図２】フロント−バックエンドモードの概略図である。
【図３】本発明の一実施形態による仮想化プラットホームによって割込みを処理する方法の概略的な流れ図である。
【図４】本発明の一実施形態による仮想割込み、物理割込み、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の概略図である。
【図５】本発明の一実施形態による仮想割込み、物理割込み、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の別の概略図である。
【図６】本発明による仮想化プラットホームによって割込みを処理する別の方法の概略的な流れ図である。
【図７】本発明の一実施形態によるｖｉｒｔｉｏデバイスの仮想割込み、ｖｈｏｓｔスレッド、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の概略図である。
【図８】本発明の一実施形態によるｖｉｒｔｉｏデバイスの仮想割込み、ｖｈｏｓｔスレッド、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の別の概略図である。
【図９】本発明の一実施形態によるホストＨｏｓｔの構造ブロック図である。
【図１０】本発明の一実施形態による別のホストＨｏｓｔの構造ブロック図である。
【図１１】本発明の一実施形態による計算ノードの構造ブロック図である。
【図１２】本発明の一実施形態による別の計算ノードの構造ブロック図である。
【発明を実施するための形態】
【００３７】
以下、本発明の実施形態における技術的解決策について、本発明の実施形態における添付の図面を参照して、はっきりと詳細に説明する。記載の実施形態は、本発明の実施形態のすべてではなくいくつかにすぎないことが明らかである。当業者であれば創造的努力なく本発明の実施形態に基づいて得られる他のすべての実施形態は、本発明の保護範囲内に入るものとする。
【００３８】
本発明の実施形態の理解を容易にするために、本発明の実施形態について説明するために紹介されることがあるいくつかの要素について、本明細書にまず説明される。
【００３９】
仮想マシン
仮想マシンソフトウェアを使用することによって、１つの物理計算ノード上で１または複数の計算ノードがシミュレートされることがある。物理計算ノードは、サーバ、デスクトップコンピュータ、携帯型コンピュータなどがありうる。シミュレートされた計算ノードは、仮想マシン、ＶＭと呼ばれる。物理計算ノードは、ホストと呼ばれる。仮想マシンは、本当の計算ノードのように動作することがある。仮想マシン上には、オペレーティングシステムおよびアプリケーションプログラムが導入されることがある。仮想マシンはまた、ネットワーク資源にアクセスしてもまたよい。仮想マシン上で走るオペレーティングシステムは、集合的に、仮想オペレーティングシステムと呼ばれる。プログラムは、本当の計算ノードのオペレーティングシステム内で走るように、仮想オペレーティングシステム内で走る。仮想ハードウェアは、仮想マシン上でさらに仮想化されることがある。具体的には、仮想化は、ホスト（Host）によってＶＭ上で仮想中央処理装置（virtual Central Processing Unit、vCPU）などの仮想ハードウェアを仮想化することによって実施される。ｖＣＰＵは、仮想マシン内で走るプログラムを処理するために使用される。１または複数のｖＣＰＵが、物理計算ノード内の１つの中央処理装置（Central Processing Unit、CPU）に対応することがある。物理計算ノード内のＣＰＵは、物理ＣＰＵ（physical CPU、pCPU）と呼ばれることがある。ｐＣＰＵは、ゲスト（guest）状態およびホスト（host）状態を有することがある。仮想マシンが走っているとき、ｐＣＰＵはゲスト状態にある。特殊な命令または外部からの割込みのため、ｐＣＰＵは、ゲスト状態からホスト状態へ切り替わることがある。このプロセスは、仮想マシン出口（VM-Exit）と呼ばれることがある。
【００４０】
仮想デバイスの実装形態は、ダイレクトモードおよびフロント−バックエンドモードを含むことがある。
【００４１】
ダイレクトモード
パススルー（passthrough）モードとも呼ばれることがあるダイレクト（direct）モードは、ホストが特定の仮想マシンに対するデバイス分離を提供し、したがって特定の物理入出力デバイスが、特定の仮想マシンによって排他的に使用されることができることを意味する。ダイレクトモードでは、仮想割込みを処理するｖＣＰＵに対応するｐＣＰＵが、仮想割込みに対応する物理割込みを処理するｐＣＰＵと一貫しない場合、余剰プロセッサ間割込み（Inter-Processor Interrupt、IPI）によるＶＭ−Ｅｘｉｔが引き起こされる。
【００４２】
フロント−バックエンドモード
フロント−バックエンド（ドライバ分割）モードは、仮想デバイスドライバが、フロントエンドドライバおよびバックエンドドライバの協調によって実施されることを意味し、フロントエンドドライバは仮想マシン内にあり、バックエンドドライバはホスト内にある。フロントエンドドライバおよびバックエンドドライバは、メモリを共用してデータ伝送を実行する。ソフトウェアのみを使用することによってシミュレートされるデバイスと比較されると、フロント−バックエンド駆動モードは、より高い抽象レベルおよびより良好な性能を有する。フロント−バックエンドモードでは、各仮想マシンは、準仮想化されたドライバ（virtio）（略してｖｉｒｔｉｏデバイス）を使用するデバイスを有する。各ｖｉｒｔｉｏデバイスは、対応する仮想ホスト（vhost）カーネルスレッドを有し、ｖｈｏｓｔカーネルスレッドは、ホスト内で走る。ｖｈｏｓｔカーネルスレッドは、対応するｖｉｒｔｉｏデバイスのパケットを処理するために使用される。フロント−バックエンドモードでは、ｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵに対応するｐＣＰＵが、ｖｉｒｔｉｏデバイスの仮想割込みに対応するｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵと一貫しない場合、余剰ＩＰＩによるＶＭ−Ｅｘｉｔが引き起こされる。
【００４３】
図１は、ダイレクトモードの概略図である。図１に示されるように、計算ノード１００内で、第１の仮想マシン１０１が、第１の物理入出力デバイス１１１を排他的に占有することがあり、第２の仮想マシン１０２が、第２の物理入出力デバイス１１２を排他的に占有することがある。図１に示されるダイレクトモードを使用する仮想マシンには、図３に示される方法が適用されることがある。
【００４４】
図２は、フロント−バックエンドモードの概略図である。図２に示されるように、計算ノード２００内の第１のｖｉｒｔｉｏデバイス２１１が第１のｖｈｏｓｔスレッド２１２に対応し、計算ノード２００内の第２のｖｉｒｔｉｏデバイス２２１が第２のｖｈｏｓｔスレッド２２２に対応し、第１のｖｉｒｔｉｏデバイスは第１の仮想マシン内のｖｉｒｔｉｏデバイスであり、第２のｖｉｒｔｉｏデバイスは第２の仮想マシン内のｖｉｒｔｉｏデバイスである。図２に示されるフロント−バックエンドモードを使用する仮想マシンには、図６に示される方法が適用されることがある。
【００４５】
図３は、本発明の一実施形態による仮想化プラットホームによって割込みを処理する方法の概略的な流れ図である。この方法は計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るホストＨｏｓｔと、Ｈｏｓｔ上で走る少なくとも１つの仮想マシンＶＭと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、この方法はＨｏｓｔによって実行される。
【００４６】
３０１．第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定する。Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数である。
【００４７】
３０２．第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理する。
【００４８】
３０３．第ｉの物理割込みに応じて第ｉの仮想割込みを判定する。
【００４９】
３０４．Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定し、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行し、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００５０】
本発明のこの実施形態では、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉの物理割込みを処理するために使用され、第ｉの仮想割込みは第ｉの物理割込みに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行することが、理解されることができる。したがって、本発明のこの実施形態における方法によれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることができ、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００５１】
ホストは、仮想マシン管理プログラムを使用することによって、図３に示される方法を実施することがある。仮想マシン管理プログラムはまた、仮想マシンモニタ（Virtual Machine Monitor、VMM）またはハイパーバイザ（hypervisor）と呼ばれてもまたよい。典型的なＶＭＭは、ＶＭｗａｒｅ  ＥＳＸ、ＸＥＮ、ＫＶＭ／Ｑｅｍｕなどである。
【００５２】
具体的には、ｐＣＰＵが物理割込みとの類似性関係を有することは、このｐＣＰＵがこの物理割込みを処理することができることを示す。ｖＣＰＵが仮想割込みとの類似性関係を有することは、このｖＣＰＵがこの仮想割込みを処理することができることを示す。ｐＣＰＵがｖＣＰＵとの類似性関係を有することは、このｐＣＰＵ上でこのｖＣＰＵが走ることができることを示す。したがって、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係に応じて、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定される。
【００５３】
任意選択で、一実施形態として、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、物理割込みが生じた場合、物理割込みおよび仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が設定されている場合、対応する物理割込みおよび仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走る。
【００５４】
任意選択で、別の実施形態として、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、物理割込みが生じた場合、物理割込みおよび仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が設定されている場合、対応する物理割込みおよび仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走ることがある。
【００５５】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを含む。この場合、仮想割込みを処理するために使用されるｖＣＰＵが、物理割込みを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、物理割込みを処理するｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されてもまたよい。
【００５６】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップは、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＰＵ上で走るかどうかを容易かつ迅速に判定することができる。
【００５７】
図４は、本発明の一実施形態による仮想割込み、物理割込み、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の概略図である。図４に示されるように、第１の物理割込みが、第１の仮想割込みに対応する。第１の仮想割込みは、第４のｖＣＰＵとの類似性関係を有する。第４のｖＣＰＵは、第３のｐＣＰＵとの類似性関係を有する。この場合、第３のｐＣＰＵは、第１の物理割込みに結合されてよく、その結果、これら２つは、類似性関係を有する。第１の物理割込みが生じたとき、第３のｐＣＰＵは、第１の物理割込みを処理することがある。次いで、第１の物理割込みに対応する第１の仮想割込みおよび第１の仮想割込みを処理するために使用されるｖＣＰＵが発見される。第４のｖＣＰＵが第３のｐＣＰＵ上で走るとき、第４のｖＣＰＵは、第１の物理割込みに対応する第１の仮想割込みを処理するために直接使用されることがある。このようにして、ｖＣＰＵが走るｐＣＰＵが、物理割込みが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。
【００５８】
図５は、本発明の一実施形態による仮想割込み、物理割込み、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の別の概略図である。図５に示されるように、第１の物理割込みは、第１の仮想割込みに対応する。第４のｖＣＰＵおよび第５のｖＣＰＵは、第３のｐＣＰＵおよび第４のｐＣＰＵの両方との類似性関係を有する。言い換えれば、第４のｖＣＰＵおよび第５のｖＣＰＵは、第３のｐＣＰＵ上で走ることがあり、または第４のｐＣＰＵ上で走ることがある。たとえば、第１の瞬間に、第４のｖＣＰＵは、第３のｐＣＰＵ上で走り、第５のｖＣＰＵは、第４のｐＣＰＵ上で走る。第２の瞬間に、第４のｖＣＰＵおよび第５のｖＣＰＵは、第３のｐＣＰＵ上で同時に走ることがある。加えて、第４のｖＣＰＵおよび第５のｖＣＰＵは、第１の仮想割込みとの類似性関係を有する。すなわち、第１の仮想割込みは、第４のｖＣＰＵまたは第５のｖＣＰＵによって処理されることがある。この場合、第３のｐＣＰＵおよび第４のｐＣＰＵはどちらも、第１の物理割込みに結合されてよく、その結果、これら２つは、類似性関係を有する。第１の物理割込みが生じたとき、Ｈｏｓｔは、第３のｐＣＰＵおよび第４のｐＣＰＵからｐＣＰＵを選択して、第１の物理割込みを処理することがある。次いで、Ｈｏｓｔは、第１の物理割込みに対応する第１の仮想割込みおよび第１の仮想割込みを処理するために使用されるｖＣＰＵを発見し、このｖＣＰＵを使用して第１の仮想割込みを処理する。仮想割込みを処理するために使用されるｖＣＰＵは、物理割込みを処理するために使用されるｐＣＰＵ上で走ることがある。したがって、ｖＣＰＵが走るｐＣＰＵが、物理割込みが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。
【００５９】
図６は、本発明による仮想化プラットホームによって割込みを処理する別の方法の概略的な流れ図である。図６に示される方法は計算ノードに適用されることがある。計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るホストＨｏｓｔと、Ｈｏｓｔ上で走るＹ個の仮想マシンＶＭと、Ｈｏｓｔ上で走るＹ個の仮想ホスト、ｖｈｏｓｔ、カーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、この方法はＨｏｓｔによって実行される。
【００６０】
６０１．第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定する。Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数である。
【００６１】
６０２．第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理する。
【００６２】
６０３．第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定する。
【００６３】
６０４．Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定する。その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行し、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００６４】
本発明のこの実施形態では、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉのｖｈｏｓｔスレッドを処理するために使用され、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する。上記の技術的解決策によれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理されるｖｉｒｔｉｏデバイスの仮想割込みに対応するｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させることが、理解されることが可能である。
【００６５】
ホストは、仮想マシン管理プログラムを使用することによって、図６に示される方法を実施することがある。仮想マシン管理プログラムは、仮想マシンモニタ（Virtual Machine Monitor、VMM）またはハイパーバイザ（hypervisor）と呼ばれてもまたよい。典型的なＶＭＭは、ＶＭｗａｒｅ  ＥＳＸ、ＸＥＮ、ＫＶＭ／Ｑｅｍｕなどである。
【００６６】
具体的には、ｐＣＰＵがｖｈｏｓｔスレッドとの類似性関係を有することは、このｐＣＰＵがこのｖｈｏｓｔスレッドを処理することができることを示す。ｖＣＰＵがｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有することは、このｖＣＰＵがこのｖｉｒｔｉｏデバイスの仮想割込みを処理することができることを示す。ｐＣＰＵがｖＣＰＵとの類似性関係を有することは、このｐＣＰＵ上でこのｖＣＰＵが走ることができることを示す。したがって、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係に応じて、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定される。
【００６７】
任意選択で、一実施形態として、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走り、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応する。
【００６８】
任意選択で、別の実施形態として、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走ることがあり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応する。
【００６９】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを含む。この場合、ｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵが、ｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、ｖｈｏｓｔスレッドを処理するｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されてもまたよい。
【００７０】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＰＵ上で走るかどうかを容易かつ迅速に判定することができる。
【００７１】
図７は、本発明の一実施形態によるｖｉｒｔｉｏデバイスの仮想割込み、ｖｈｏｓｔスレッド、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の概略図である。図７に示されるように、第１のｖｈｏｓｔスレッドが、第１のｖｉｒｔｉｏデバイスの仮想割込みに対応する。第４のｖＣＰＵは、第１のｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有する。第３のｐＣＰＵは、第４のｖＣＰＵとの類似性関係を有する。この場合、第１のｖｈｏｓｔスレッドは、第３のｐＣＰＵに結合されてよく、その結果、これら２つは、類似性関係を有する。第１のｖｈｏｓｔスレッドが生じたとき、第３のｐＣＰＵは、第１のｖｈｏｓｔスレッドを処理することがある。次いで、第１のｖｉｒｔｉｏデバイスの仮想割込みおよび第１のｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵが発見され、第１のｖｉｒｔｉｏデバイスの仮想割込みは、第１のｖｈｏｓｔスレッドに対応する。第４のｖＣＰＵが第３のｐＣＰＵ上で走るとき、第４のｖＣＰＵは、第１のｖｉｒｔｉｏデバイスの仮想割込みを処理するために直接使用されることがあり、第１のｖｉｒｔｉｏデバイスの仮想割込みは、第１のｖｈｏｓｔスレッドに対応する。このようにして、ｖＣＰＵが走るｐＣＰＵが、ｖｈｏｓｔスレッドが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。
【００７２】
図８は、本発明の一実施形態によるｖｉｒｔｉｏデバイスの仮想割込み、ｖｈｏｓｔスレッド、ｖＣＰＵ、およびｐＣＰＵの間の対応関係の別の概略図である。図８に示されるように、第１のｖｈｏｓｔスレッドは、第１のｖｉｒｔｉｏデバイスの仮想割込みに対応する。第３のｐＣＰＵおよび第４のｐＣＰＵは、第４のｖＣＰＵおよび第５のｖＣＰＵの両方との類似性関係を有する。言い換えれば、第４のｖＣＰＵおよび第５のｖＣＰＵは、第３のｐＣＰＵ上で走ることがあり、または第４のｐＣＰＵ上で走ることがある。たとえば、第１の瞬間に、第４のｖＣＰＵは、第３のｐＣＰＵ上で走り、第５のｖＣＰＵは、第４のｐＣＰＵ上で走る。第２の瞬間に、第４のｖＣＰＵおよび第５のｖＣＰＵは、第３のｐＣＰＵ上で同時に走ることがある。加えて、第４のｖＣＰＵおよび第５のｖＣＰＵは、第１のｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有する。すなわち、第１のｖｉｒｔｉｏデバイスの仮想割込みは、第４のｖＣＰＵまたは第５のｖＣＰＵによって処理されることがある。この場合、第３のｐＣＰＵおよび第４のｐＣＰＵはどちらも、第１のｖｈｏｓｔスレッドに結合されてよく、その結果、これら２つは、類似性関係を有する。次いで、第１のｖｈｏｓｔスレッドが生じたとき、Ｈｏｓｔは、第３のｐＣＰＵおよび第４のｐＣＰＵからｐＣＰＵを選択して、第１のｖｈｏｓｔスレッドを処理することがある。次いで、Ｈｏｓｔは、第１のｖｉｒｔｉｏデバイスの仮想割込みおよび第１のｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵを発見し、このｖＣＰＵを使用して第１のｖｉｒｔｉｏデバイスの仮想割込みを処理し、第１のｖｉｒｔｉｏデバイスの仮想割込みは、第１のｖｈｏｓｔスレッドに対応する。ｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵは、ｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵ上で走ることがある。したがって、ｖＣＰＵが走るｐＣＰＵが、ｖｈｏｓｔスレッドが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。
【００７３】
図９は、本発明の一実施形態によるホストＨｏｓｔの構造ブロック図である。図９に示されるＨｏｓｔ９００は、図３に示されるすべてのステップを実行することができる。具体的には、Ｈｏｓｔは計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るＨｏｓｔと、Ｈｏｓｔ上で走る少なくとも１つの仮想マシンＶＭと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、Ｈｏｓｔは、第１の判定ユニット９０１、第２の呼出しユニット９０２、第３の判定ユニット９０３、および第４の判定ユニット９０４を含む。
【００７４】
第１の判定ユニット９０１は、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するように構成され、Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数である。
【００７５】
第２の呼出しユニット９０２は、第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理するように構成される。
【００７６】
第３の判定ユニット９０３は、第ｉの物理割込みに応じて第ｉの仮想割込みを判定するように構成される。
【００７７】
第４の判定ユニット９０４は、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するように構成され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行し、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００７８】
本発明のこの実施形態におけるＨｏｓｔによれば、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉの物理割込みを処理するために使用され、第ｉの仮想割込みは第ｉの物理割込みに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行することが、理解されることが可能である。したがって、図９に示されるＨｏｓｔによれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００７９】
任意選択で、一実施形態として、第１の判定ユニット９０１は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。このようにして、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が判定されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走る。
【００８０】
任意選択で、別の実施形態として、第１の判定ユニット９０１は、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。このようにして、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が判定されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走ることがある。
【００８１】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、第４の判定ユニット９０４は、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップとを行うように特に構成される。この場合、仮想割込みを処理するために使用されるｖＣＰＵが、物理割込みを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、物理割込みが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されることがある。したがって、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、最大限回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００８２】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、第４の判定ユニット９０４は、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＰＵ上で走るかどうかを容易かつ迅速に判定することができる。
【００８３】
図１０は、本発明の一実施形態による別のホストＨｏｓｔの構造ブロック図である。図１０に示されるＨｏｓｔ１０００は、図６に示されるすべてのステップを実行することができる。Ｈｏｓｔ１０００は計算ノードに適用され、計算ノードは、物理ハードウェア層と、物理ハードウェア層で走るＨｏｓｔと、Ｈｏｓｔ上で走るＹ個の仮想マシンＶＭと、Ｈｏｓｔ上で走るＹ個の仮想ホスト、ｖｈｏｓｔ、カーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドの第ｊのｖｈｏｓｔカーネルスレッドに対応し、Ｈｏｓｔは、第１の判定ユニット１００１、第２の呼出しユニット１００２、第３の判定ユニット１００３、および第４の判定ユニット１００４を含む。
【００８４】
第１の判定ユニット１００１は、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するように構成され、Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数である。
【００８５】
第２の呼出しユニット１００２は、第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理するように構成される。
【００８６】
第３の判定ユニット１００３は、第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定するようにさらに構成される。
【００８７】
第４の判定ユニット１００４は、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するようにさらに構成され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行し、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００８８】
本発明のこの実施形態で提供されるホストＨｏｓｔによれば、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉのｖｈｏｓｔスレッドを処理するために使用され、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行することが、理解されることが可能である。したがって、図１０に示されるＨｏｓｔによれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理されるｖｉｒｔｉｏデバイスの仮想割込みに対応するｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００８９】
任意選択で、一実施形態として、第１の判定ユニット１００１は、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走り、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応する。
【００９０】
任意選択で、別の実施形態として、第１の判定ユニット１００１は、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとを行うようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走ることがあり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応する。
【００９１】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、第４の判定ユニット１００４は、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを行うように特に構成される。この場合、ｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵが、ｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、ｖｈｏｓｔスレッドを処理するｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されてもまたよい。したがって、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、最大限回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００９２】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、第４の判定ユニット１００４は、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＰＵ上で走るかどうかを容易かつ迅速に判定することができる。
【００９３】
図１１は、本発明の一実施形態による計算ノードの構造ブロック図である。図１１に示される計算ノードは、図３に示されるすべてのステップを実行することができる。計算ノードは、第ｊの物理入出力デバイスを含むＹ個の物理入出力デバイス１１０２と、Ｘ個の物理中央処理装置ｐＣＰＵ１１０２と、Ｘ個の物理中央処理装置ｐＣＰＵのそれぞれおよびＹ個の物理入出力デバイスのそれぞれに接続されたメモリ１１０３であって、Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、メモリ１１０３内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリ１１０３と、ホストＨｏｓｔと、少なくとも１つの仮想マシンＶＭと、少なくとも１つの仮想マシンＶＭ上で仮想化された仮想ハードウェアとを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、少なくとも１つのＶＭは第ｋのＶＭを含み、第ｊの物理入出力デバイスは第ｋのＶＭに向き、Ｈｏｓｔは、
第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みが第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、判定するステップと、
第ｎのｐＣＰＵを使用して第ｉの物理割込みを処理するステップと、
第ｉの物理割込みに応じて第ｉの仮想割込みを判定するステップと、
Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行する、判定するステップとを行うように構成され、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【００９４】
本発明のこの実施形態における計算ノードによれば、第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉの仮想割込みは第ｉの物理割込みに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉの物理割込みを処理するために使用され、第ｉの仮想割込みは第ｉの物理割込みに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉの仮想割込みを実行することが、理解されることが可能である。したがって、図１１に示される計算ノードによれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００９５】
任意選択で、一実施形態として、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、物理割込みが生じた場合、物理割込みおよび仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が設定されている場合、対応する物理割込みおよび仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走る。
【００９６】
任意選択で、別の実施形態として、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉの仮想割込みに対応する第ｉの物理割込みを判定するステップと、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉの物理割込みがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、物理割込みが生じた場合、物理割込みおよび仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉの物理割込みとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の類似性関係が設定されている場合、対応する物理割込みおよび仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉの物理割込みが生じたとき、第ｉの物理割込みに対応する第ｉの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉの物理割込みを処理する第ｎのｐＣＰＵ上で走ることがある。
【００９７】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉの物理割込みとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定する態様で、Ｈｏｓｔは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップとを行うように特に構成される。この場合、仮想割込みを処理するために使用されるｖＣＰＵが、物理割込みを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、物理割込みが生じたｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されてもまたよい。したがって、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、最大限回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【００９８】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、Ｈｏｓｔは、仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように特に構成され、仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＰＵ上で走るかどうかを容易かつ迅速に判定することができる。
【００９９】
図１２は、本発明の一実施形態による別の計算ノードの構造ブロック図である。図１２に示される計算ノード１２００は、図６に示されるすべてのステップを実行することができる。計算ノード１２００は、Ｘ個の物理中央処理装置ｐＣＰＵ１２０１と、Ｘ個の物理中央処理装置ｐＣＰＵに接続されたメモリ１２０２であって、Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、メモリ１２０２内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリ１２０２と、ホストＨｏｓｔと、Ｙ個の仮想マシンＶＭと、Ｙ個の仮想ホスト、ｖｈｏｓｔ、カーネルスレッドと、少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを含み、仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを含み、Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを含み、Ｙ個のＶＭは第ｋのＶＭを含み、第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを含み、第ｉのｖｉｒｔｉｏデバイスはＹ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、Ｈｏｓｔは、
第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、Ｕ個の標的ｐＣＰＵが、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みが第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵがＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵがＶ個の標的ｖＣＰＵを含む、判定するステップと、
第ｎのｐＣＰＵを使用して第ｉのｖｈｏｓｔスレッドを処理するステップと、
第ｉのｖｈｏｓｔスレッドに応じて第ｉのｖｉｒｔｉｏデバイスの仮想割込みを判定するステップと、
Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを行うように構成され、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数である。
【０１００】
本発明のこの実施形態における計算ノードによれば、第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵが判定され、Ｕ個の標的ｐＣＰＵは、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、Ｖ個の標的ｖＣＰＵは、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応し、Ｘ個のｐＣＰＵはＵ個の標的ｐＣＰＵを含み、Ｚ個のｖＣＰＵはＶ個の標的ｖＣＰＵを含み、第ｎのｐＣＰＵは第ｉのｖｈｏｓｔスレッドを処理するために使用され、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに応じて判定され、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵが判定され、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する。したがって、図１２に示される計算ノードによれば、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理されるｖｉｒｔｉｏデバイスの仮想割込みに対応するｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、実質上回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【０１０１】
任意選択で、一実施形態として、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵがＵ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走り、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは第ｉのｖｈｏｓｔスレッドに対応する。
【０１０２】
任意選択で、別の実施形態として、Ｈｏｓｔは、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を、Ｖ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係を判定するステップであって、Ｖ個の標的ｖＣＰＵが、第ｋのＶＭ上で仮想化された、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、Ｕ個の標的ｐＣＰＵを判定するステップであって、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、第ｉのｖｉｒｔｉｏデバイスの仮想割込みに対応する第ｉのｖｈｏｓｔスレッドを判定するステップと、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、第ｉのｖｈｏｓｔスレッドがＵ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップとによって判定するようにさらに構成される。Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係は、事前設定および記憶されることがある。次いで、ｖｈｏｓｔスレッドが生じた場合、ｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの仮想割込みを処理するために、記憶された類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。または、Ｕ個の標的ｐＣＰＵと第ｉのｖｈｏｓｔスレッドとの間の類似性関係、Ｕ個の標的ｐＣＰＵとＶ個の標的ｖＣＰＵとの間の類似性関係、およびＶ個の標的ｖＣＰＵと第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の類似性関係が設定されている場合、対応するｖｈｏｓｔスレッドおよびｖｉｒｔｉｏデバイスの対応する仮想割込みを処理するために、これらの類似性関係に応じて、対応するｐＣＰＵおよびｖＣＰＵが発見されることがある。この場合、第ｉのｖｈｏｓｔスレッドが生じたとき、第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用される第ｍのｖＣＰＵは、物理ハードウェア層に位置するいかなるｐＣＰＵ上で走るのでもなく、制限された数の判定されたｐＣＰＵ上で走り、第ｉのｖｈｏｓｔスレッドを処理する第ｎのｐＣＰＵ上で走ることがあり、第ｉのｖｉｒｔｉｏデバイスの仮想割込みは、第ｉのｖｈｏｓｔスレッドに対応する。
【０１０３】
さらに、Ｖ個の標的ｖＣＰＵが複数の標的ｐＣＰＵ上で走ることができるとき（言い換えれば、第ｉのｖｈｏｓｔスレッドとＵ個の標的ｐＣＰＵとの間の類似性関係が１対多数の類似性関係であるとき）、Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定する態様で、Ｈｏｓｔは、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップ、またはＶ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じてＶ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを第ｍのｖＣＰＵとして判定するステップであって、その結果、第ｋのＶＭが第ｍのｖＣＰＵを使用して第ｉのｖｉｒｔｉｏデバイスの仮想割込みを実行する、判定するステップとを行うように特に構成される。この場合、ｖｉｒｔｉｏデバイスの仮想割込みを処理するために使用されるｖＣＰＵが、ｖｈｏｓｔスレッドを処理するために使用されるｐＣＰＵ上で走る場合、ｖＣＰＵが走るｐＣＰＵが、ｖｈｏｓｔスレッドを処理するｐＣＰＵとは異なるために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、生じないことがある。優先順位は、Ｖ個の標的ｖＣＰＵの事前設定された優先度でありうる。優先度の選択はまた、各標的ｖＣＰＵを選択する確率が同じになることを確実にするように、ラウンドロビン方策を使用することによって判定されてもまたよい。したがって、ｖＣＰＵが類似性を有するｐＣＰＵが、このｖＣＰＵによって処理される仮想割込みに対応する物理割込みを処理するために使用されるｐＣＰＵではないために引き起こされる余剰ＩＰＩによるＶＭ−Ｅｘｉｔは、最大限回避されることが可能であり、それによってコンテキストスイッチの回数を実質上低減させ、ｐＣＰＵに対して仮想マシンによって引き起こされる干渉を低減させる。
【０１０４】
さらに、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、Ｈｏｓｔは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、Ｖ個の標的ｖＣＰＵのうち第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように構成され、ｖｉｒｔｉｏデバイスの仮想割込み経路情報は、Ｕ個の標的ｐＣＰＵとＵ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む。このようにして、Ｈｏｓｔは、第ｍのｖＣＰＵが第ｎのｐＣＰＵ上で走るかどうかを容易かつ迅速に判定することができる。
【０１０５】
上記の実施形態における方法のプロセスのすべてまたはいくつかは、関連ハードウェア（たとえば、プロセッサ）を指示するコンピュータプログラムによって実施されることがあることが、当業者には理解されよう。プログラムは、コンピュータ可読記憶媒体内に記憶されることがある。プログラムが走るとき、上記の実施形態における方法のプロセスが実行される。記憶媒体は、磁気ディスク、光ディスク、読取り専用メモリ（Read-Only Memory、ROM）、またはランダムアクセスメモリ（Random Access Memory、RAM）を含むことがある。
【０１０６】
本明細書に開示される実施形態に記載される例と組み合わせて、電子ハードウェアまたはコンピュータソフトウェアおよび電子ハードウェアの組合せによって、ユニットおよびアルゴリズムステップが実施されることがあることが、当業者には認識されよう。これらの機能が、ハードウェアによって実行されるか、それともソフトウェアによって実行されるかは、技術的解決策の特定の適用および設計制約条件に依存する。当業者であれば、それぞれの特定の適用に対して、記載される機能を実施するために異なる方法を使用することがあるが、そのような実装は、本発明の範囲を超えると見なされるべきでない。
【０１０７】
好都合かつ簡単な説明の目的のため、上記のシステム、装置、およびユニットの詳述される作業プロセスに関して、上記の方法実施形態における対応するプロセスが参照されてよく、詳細は本明細書に繰り返し記載されないことが、当業者にははっきりと理解されよう。
【０１０８】
本出願に提供されるいくつかの実施形態では、開示されるシステム、装置、および方法が、他の態様でも実施されることがあることが、理解されるべきである。たとえば、記載される装置実施形態は、例示にすぎない。たとえば、ユニットの区分は、論理的な機能区分にすぎず、実際の実装では他の区分としてもよい。たとえば、複数のユニットまたは構成要素は、別のシステム内へ組み合わせられてよく、もしくは組み込まれてよく、またはいくつかの特徴は、無視されてよく、もしくは実行されなくてもよい。加えて、表示または議論された相互結合もしくは直接結合または通信接続は、いくつかのインターフェースを通って実施されることがある。装置またはユニット間の間接結合または通信接続は、電子、機械、または他の形式で実施されることがある。
【０１０９】
別個の部分として記載されるユニットは、物理的に別個のものであっても、そうでなくてもよく、ユニットとして表示される部分は、物理ユニットであっても、そうでなくてもよく、１つの位置に配置されてよく、または複数のネットワークユニット上に分散されてもよい。ユニットのいくつかまたはすべては、実施形態の解決策の目的を実現するために、実際の必要に応じて選択されることがある。
【０１１０】
加えて、本発明の実施形態における機能ユニットは、１つの処理ユニット内に組み込まれてよく、またはユニットはそれぞれ、物理的に単独で存在してよく、または２つ以上のユニットが、１つのユニット内へ組み込まれる。
【０１１１】
これらの機能が、ソフトウェア機能ユニットの形で実施され、独立した製品として販売または使用されるとき、これらの機能は、コンピュータ可読記憶媒体内に記憶されることがある。そのような理解に基づいて、本質的に本発明の技術的解決策、または従来技術に寄与する部分、または技術的解決策のいくつかは、ソフトウェア製品の形で実施されることがある。ソフトウェア製品は、記憶媒体内に記憶され、本発明の実施形態に記載される方法のステップのすべてまたはいくつかを実行するようにコンピュータデバイス（パーソナルコンピュータ、サーバ、もしくはネットワークデバイスであることがある）またはプロセッサに指示するいくつかの命令を含む。上記の記憶媒体は、ＵＳＢフラッシュドライブ、取外し可能ハードディスク、読取り専用メモリ（ROM、Read-Only Memory）、ランダムアクセスメモリ（RAM、Random Access Memory）、磁気ディスク、または光ディスクなど、プログラムコードを記憶することができる任意の媒体を含む。
【０１１２】
上記の説明は、本発明の特有の実装形態にすぎず、本発明の保護範囲を限定することが意図されるものではない。本発明に開示される技術範囲内の当業者によれば容易に考えつくあらゆる変更または置換えは、本発明の保護範囲内に入るものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲内にあるものとする。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想化プラットホームによって割込みを処理する方法であって、前記方法は計算ノードに適用され、前記計算ノードは、物理ハードウェア層と、前記物理ハードウェア層で走るホストと、前記Ｈｏｓｔ上で走る少なくとも１つの仮想マシン、ＶＭ、と、前記少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを備え、前記物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを備え、前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、前記Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを備え、前記少なくとも１つのＶＭは第ｋのＶＭを備え、前記第ｊの物理入出力デバイスは前記第ｋのＶＭに向き、前記方法は前記Ｈｏｓｔによって実行され、前記方法は、
前記第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、前記Ｕ個の標的ｐＣＰＵが、前記第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉの仮想割込みが前記第ｉの物理割込みに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、判定するステップと、
前記第ｎのｐＣＰＵを使用して前記第ｉの物理割込みを処理するステップと、
前記第ｉの物理割込みに応じて前記第ｉの仮想割込みを判定するステップと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉの仮想割込みを実行する、判定するステップと
を含み、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とする方法。
【請求項２】
前記Ｕ個の標的ｐＣＰＵと前記第ｉの物理割込みとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係は、
前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定されることを特徴とする請求項１に記載の方法。
【請求項３】
前記Ｕ個の標的ｐＣＰＵと前記第ｉの物理割込みとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係は、
前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定されることを特徴とする請求項１に記載の方法。
【請求項４】
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係が１対多数の類似性関係であるとき、前記Ｖ個の標的ｖＣＰＵから前記第ｍのｖＣＰＵを判定する前記ステップは、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップと
を含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する前記ステップは、
仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含むことを特徴とする請求項４に記載の方法。
【請求項６】
仮想化プラットホームによって割込みを処理する方法であって、前記方法は計算ノードに適用され、前記計算ノードは、物理ハードウェア層と、前記物理ハードウェア層で走るホストＨｏｓｔと、前記Ｈｏｓｔ上で走るＹ個の仮想マシン、ＶＭ、と、前記Ｈｏｓｔ上で走るＹ個の仮想ホスト、ｖｈｏｓｔ、カーネルスレッドと、前記Ｙ個のＶＭ上で仮想化された仮想ハードウェアとを備え、前記物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを備え、前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、前記Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを備え、前記Ｙ個のＶＭは第ｋのＶＭを備え、前記第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを備え、前記第ｉのｖｉｒｔｉｏデバイスは前記Ｙ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、前記方法は前記Ｈｏｓｔによって実行され、前記方法は、
前記第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、前記Ｕ個の標的ｐＣＰＵが、前記第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みが前記第ｉのｖｈｏｓｔスレッドに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、判定するステップと、
前記第ｎのｐＣＰＵを使用して前記第ｉのｖｈｏｓｔスレッドを処理するステップと、
前記第ｉのｖｈｏｓｔスレッドに応じて前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを判定するステップと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを実行する、判定するステップと
を含み、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とする方法。
【請求項７】
前記Ｕ個の標的ｐＣＰＵと前記第ｉのｖｈｏｓｔスレッドとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の前記類似性関係は、
前記Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定されることを特徴とする請求項６に記載の方法。
【請求項８】
前記Ｕ個の標的ｐＣＰＵと前記第ｉのｖｈｏｓｔスレッドとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの間の前記類似性関係は、
前記Ｖ個の標的ｖＣＰＵと前記第iのｖｉｒｔｉｏデバイスの前記仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定されることを特徴とする請求項６に記載の方法。
【請求項９】
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係が１対多数の類似性関係であるとき、前記Ｖ個の標的ｖＣＰＵから前記第ｍのｖＣＰＵを判定する前記ステップは、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップ、または
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップと
を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する前記ステップは、
ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップを含み、前記ｖｉｒｔｉｏデバイスの前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
ホストＨｏｓｔであって、前記Ｈｏｓｔは計算ノードに適用され、前記計算ノードは、物理ハードウェア層と、前記物理ハードウェア層で走る前記Ｈｏｓｔと、前記Ｈｏｓｔ上で走る少なくとも１つの仮想マシン、ＶＭ、と、前記少なくとも１つのＶＭ上で仮想化された仮想ハードウェアとを備え、前記物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵおよびＹ個の物理入出力デバイスを備え、前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、前記Ｙ個の物理入出力デバイスは第ｊの物理入出力デバイスを備え、前記少なくとも１つのＶＭは第ｋのＶＭを備え、前記第ｊの物理入出力デバイスは前記第ｋのＶＭに向き、前記Ｈｏｓｔは、
前記第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するように構成された第１の判定ユニットであって、前記Ｕ個の標的ｐＣＰＵが、前記第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉの仮想割込みが前記第ｉの物理割込みに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、第１の判定ユニットと、
前記第ｎのｐＣＰＵを使用して前記第ｉの物理割込みを処理するように構成された第２の呼出しユニットと、
前記第ｉの物理割込みに応じて前記第ｉの仮想割込みを判定するように構成された第３の判定ユニットと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するように構成された第４の判定ユニットであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉの仮想割込みを実行する、第４の判定ユニットと
を備え、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とするＨｏｓｔ。
【請求項１２】
前記第１の判定ユニットは、前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
を行うようにさらに構成されることを特徴とする請求項１１に記載のＨｏｓｔ。
【請求項１３】
前記第１の判定ユニットは、前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
を行うようにさらに構成されることを特徴とする請求項１１に記載のＨｏｓｔ。
【請求項１４】
前記第４の判定ユニットは、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉの仮想割込みを実行する、判定するステップ、または
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉの仮想割込みを実行する、判定するステップと
を行うように構成されることを特徴とする請求項１３に記載のＨｏｓｔ。
【請求項１５】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、前記第４の判定ユニットは、仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように構成され、前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含む
ことを特徴とする請求項１４に記載のＨｏｓｔ。
【請求項１６】
ホストＨｏｓｔであって、前記Ｈｏｓｔは計算ノードに適用され、前記計算ノードは、物理ハードウェア層と、前記物理ハードウェア層で走る前記Ｈｏｓｔと、前記Ｈｏｓｔ上で走るＹ個の仮想マシン、ＶＭ、と、前記Ｈｏｓｔ上で走るＹ個の仮想ホスト、ｖｈｏｓｔ、カーネルスレッドと、前記Ｙ個のＶＭ上で仮想化された仮想ハードウェアとを備え、前記物理ハードウェア層はＸ個の物理中央処理装置ｐＣＰＵを備え、前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、Ｘ、Ｙ、およびＺは１より大きい正の整数であり、前記Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを備え、前記Ｙ個のＶＭは第ｋのＶＭを備え、前記第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを備え、前記第ｉのｖｉｒｔｉｏデバイスは前記Ｙ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、前記Ｈｏｓｔは、
前記第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵからの第ｎのｐＣＰＵを判定するように構成された第１の判定ユニットであって、前記Ｕ個の標的ｐＣＰＵが、第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みが前記第ｉのｖｈｏｓｔスレッドに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、第１の判定ユニットと、
前記第ｎのｐＣＰＵを使用して前記第ｉのｖｈｏｓｔスレッドを処理するように構成された第２の呼出しユニットと、
前記第ｉのｖｈｏｓｔスレッドに応じて前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを判定するように構成された第３の判定ユニットと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するように構成された第４の判定ユニットであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを実行する、第４の判定ユニットと
を備え、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とするＨｏｓｔ。
【請求項１７】
前記第１の判定ユニットは、前記Ｖ個の標的ｖＣＰＵと第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
を行うようにさらに構成されることを特徴とする請求項１６に記載のＨｏｓｔ。
【請求項１８】
前記第１の判定ユニットは、前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
を行うようにさらに構成されることを特徴とする請求項１６に記載のＨｏｓｔ。
【請求項１９】
前記第４の判定ユニットは、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを実行する、判定するステップ、または
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを実行する、判定するステップと
を行うように構成されることを特徴とする請求項１８に記載のＨｏｓｔ。
【請求項２０】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、
前記第４の判定ユニットは、ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように構成され、前記ｖｉｒｔｉｏデバイスの前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含むことを特徴とする請求項１９に記載のＨｏｓｔ。
【請求項２１】
第ｊの物理入出力デバイスを備えるＹ個の物理入出力デバイスと、
Ｘ個の物理中央処理装置ｐＣＰＵと、
前記Ｘ個の物理中央処理装置ｐＣＰＵのそれぞれおよび前記Ｙ個の物理入出力デバイスのそれぞれに接続されたメモリであって、前記Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、前記メモリ内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリと、ホストＨｏｓｔと、少なくとも１つの仮想マシンＶＭと、前記少なくとも１つの仮想マシンＶＭ上で仮想化された仮想ハードウェアと
を備える計算ノードであって、
前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、前記少なくとも１つのＶＭは第ｋのＶＭを備え、前記第ｊの物理入出力デバイスは前記第ｋのＶＭに向き、
前記Ｈｏｓｔは、
前記第ｊの物理入出力デバイス内で第ｉの物理割込みが生じた場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、前記Ｕ個の標的ｐＣＰＵが、前記第ｉの物理割込みおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、第ｉの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉの仮想割込みが前記第ｉの物理割込みに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、判定するステップと、
前記第ｎのｐＣＰＵを使用して前記第ｉの物理割込みを処理するステップと、
前記第ｉの物理割込みに応じて前記第ｉの仮想割込みを判定するステップと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉの仮想割込みを実行する、判定するステップと
を行うように構成され、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とする計算ノード。
【請求項２２】
前記Ｈｏｓｔは、前記Ｕ個の標的ｐＣＰＵと前記第ｉの物理割込みとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を、
前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定するようにさらに構成されることを特徴とする請求項２１に記載の計算ノード。
【請求項２３】
前記Ｈｏｓｔは、前記Ｕ個の標的ｐＣＰＵと前記第ｉの物理割込みとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を、
前記Ｖ個の標的ｖＣＰＵと前記第ｉの仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉの仮想割込みに対応する前記第ｉの物理割込みを判定するステップと、
前記第ｉの物理割込みと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉの物理割込みが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定するようにさらに構成されることを特徴とする請求項２１に記載の計算ノード。
【請求項２４】
前記Ｖ個の標的ｖＣＰＵから前記第ｍのｖＣＰＵを判定する態様で、前記Ｈｏｓｔは、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップ、または
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップと
を行うように構成されることを特徴とする請求項２３に記載の計算ノード。
【請求項２５】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、前記Ｈｏｓｔは、仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように構成され、前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含むことを特徴とする請求項２４に記載の計算ノード。
【請求項２６】
Ｘ個の物理中央処理装置ｐＣＰＵと、
前記Ｘ個の物理中央処理装置ｐＣＰＵに接続されたメモリであって、前記Ｘ個の物理中央処理装置ｐＣＰＵのうちの１または複数のｐＣＰＵが、前記メモリ内に記憶された動作命令を呼び出しまたは実行するように構成される、メモリと、ホストＨｏｓｔと、Ｙ個の仮想マシン、ＶＭと、Ｙ個の仮想ホスト、ｖｈｏｓｔ、カーネルスレッドと、前記Ｙ個のＶＭ上で仮想化された仮想ハードウェアとを備える計算ノードであって、前記仮想ハードウェアはＺ個の仮想中央処理装置ｖＣＰＵを備え、前記Ｙ個のＶＭの各ＶＭは準仮想化されたドライバｖｉｒｔｉｏデバイスを備え、前記Ｙ個のＶＭは第ｋのＶＭを備え、前記第ｋのＶＭは第ｉのｖｉｒｔｉｏデバイスを備え、前記第ｉのｖｉｒｔｉｏデバイスは前記Ｙ個のｖｈｏｓｔカーネルスレッドのうちの第ｊのｖｈｏｓｔカーネルスレッドに対応し、
前記Ｈｏｓｔは、
前記第ｊのｖｈｏｓｔカーネルスレッドが第ｉのｖｈｏｓｔスレッドをトリガする場合、Ｕ個の標的ｐＣＰＵから第ｎのｐＣＰＵを判定するステップであって、前記Ｕ個の標的ｐＣＰＵが、前記第ｉのｖｈｏｓｔスレッドおよびＶ個の標的ｖＣＰＵの両方との類似性関係を有するｐＣＰＵであり、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みとの類似性関係を有するｖＣＰＵであり、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みが前記第ｉのｖｈｏｓｔスレッドに対応し、前記Ｘ個のｐＣＰＵが前記Ｕ個の標的ｐＣＰＵを備え、前記Ｚ個のｖＣＰＵが前記Ｖ個の標的ｖＣＰＵを備える、判定するステップと、
前記第ｎのｐＣＰＵを使用して前記第ｉのｖｈｏｓｔスレッドを処理するステップと、
前記第ｉのｖｈｏｓｔスレッドに応じて前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを判定するステップと、
前記Ｖ個の標的ｖＣＰＵから第ｍのｖＣＰＵを判定するステップであって、その結果、前記第ｋのＶＭが前記第ｍのｖＣＰＵを使用して前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを実行する、判定するステップと
を行うように構成され、
Ｘ、Ｙ、およびＺは１より大きい正の整数であり、Ｕは１以上かつＸ以下の正の整数であり、Ｖは１以上かつＺ以下の正の整数であり、ｉ、ｊ、ｋ、ｍ、およびｎは正の整数であることを特徴とする計算ノード。
【請求項２７】
前記Ｈｏｓｔは、前記Ｕ個の標的ｐＣＰＵと前記第ｉのｖｈｏｓｔスレッドとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みとの間の前記類似性関係を、
前記Ｖ個の標的ｖＣＰＵと前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記Ｕ個の標的ｐＣＰＵ上で走ることができ、Ｕが１に等しい、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の前記類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定するようにさらに構成されることを特徴とする請求項２６に記載の計算ノード。
【請求項２８】
前記Ｈｏｓｔは、前記Ｕ個の標的ｐＣＰＵと前記第ｉのｖｈｏｓｔスレッドとの間の前記類似性関係、前記Ｕ個の標的ｐＣＰＵと前記Ｖ個の標的ｖＣＰＵとの間の前記類似性関係、および前記Ｖ個の標的ｖＣＰＵと前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みとの間の前記類似性関係を、
前記Ｖ個の標的ｖＣＰＵと前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みとの間の前記類似性関係を判定するステップであって、前記Ｖ個の標的ｖＣＰＵが、前記第ｋのＶＭ上で仮想化された、前記第ｉのｖｉｒｔｉｏデバイスの仮想割込みを処理することができるｖＣＰＵである、判定するステップと、
前記Ｕ個の標的ｐＣＰＵを判定するステップであって、前記Ｖ個の標的ｖＣＰＵが前記複数の標的ｐＣＰＵ上で走ることができ、Ｕが１より大きくかつＸ以下の正の整数である、判定するステップと、
前記第ｉのｖｉｒｔｉｏデバイスの前記仮想割込みに対応する前記第ｉのｖｈｏｓｔスレッドを判定するステップと、
前記第ｉのｖｈｏｓｔスレッドと前記Ｕ個の標的ｐＣＰＵとの間の類似性関係を判定するステップであって、前記第ｉのｖｈｏｓｔスレッドが前記Ｕ個の標的ｐＣＰＵによって処理されることが可能である、判定するステップと
によって判定するようにさらに構成されることを特徴とする請求項２６に記載の計算ノード。
【請求項２９】
前記Ｖ個の標的ｖＣＰＵから前記第ｍのｖＣＰＵを判定する態様で、前記Ｈｏｓｔは、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するステップと、
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在すると判定された場合、前記第ｎのｐＣＰＵ上で走る１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップ、または
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在しないと判定された場合、優先順位に応じて前記Ｖ個の標的ｖＣＰＵからの１つの標的ｖＣＰＵを前記第ｍのｖＣＰＵとして判定するステップと
を行うように構成されることを特徴とする請求項２８に記載の計算ノード。
【請求項３０】
前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定する態様で、前記Ｈｏｓｔは、
ｖｉｒｔｉｏデバイスの仮想割込み経路情報に応じて、前記Ｖ個の標的ｖＣＰＵのうち前記第ｎのｐＣＰＵ上で走る少なくとも１つの標的ｖＣＰＵが存在するかどうかを判定するように構成され、前記ｖｉｒｔｉｏデバイスの前記仮想割込み経路情報は、前記Ｕ個の標的ｐＣＰＵと前記Ｕ個の標的ｐＣＰＵ上で走る標的ｖＣＰＵとの間の対応関係を含むことを特徴とする請求項２９に記載の計算ノード。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2017518589.tif 000015
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2017518589.tif 000016
【国際調査報告】
2017518589.tif 000017
2017518589.tif 000018
2017518589.tif 000019
2017518589.tif 000020