(57)【要約】  ２つの仮想ＣＰＵ１４３，１４４により２つの仮想計算機１１０，１１１を実現する計算機システムであって、仮想ＣＰＵ１４３が仮想計算機１１０のタイマ処理以外の計算処理を実行する際に仮想ＣＰＵ１４３に割り当てられるＣＰＵ１０３と、仮想ＣＰＵ１０３が仮想計算機１１０のタイマ処理を実行するための割込み要求（チック割込み）を受け付けると仮想ＣＰＵ１４３に割り当てられるタイマ処理専用のチックＣＰＵ１０５と、チック割込みをチックＣＰＵ１０５に対して発行する割込みコントローラ１０６とを備える。
2011161893.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想処理手段により仮想計算機を２つ以上実行する計算機システムであって、
計算処理を行う物理資源により構成され且つ第１の仮想処理手段が第１の仮想計算機の第１の処理を実行するときに前記第１の仮想処理手段に割り当てられ、第２の仮想処理手段が第２の仮想計算機の第１の処理を実行するときに前記第２の仮想処理手段に割り当てられる第１の処理装置と、
計算処理を行う物理資源により構成され且つ前記第１の仮想計算機の第２の処理を第１の仮想処理手段により実行するための第１の割込み要求を受け付けて前記第１の仮想処理手段に割り当てられ、前記第２の仮想計算機の第２の処理を第２の仮想処理手段により実行するための第２の割込み要求を受け付けると前記第２の仮想処理手段に割り当てられる第２の処理専用の第２の処理装置と、
前記第１の割込み要求または前記第２の割込み要求を前記第２の処理装置に対して発行する割込みコントローラとを備える
ことを特徴とする計算機システム。
【請求項２】
前記第２の処理は、複数の仮想計算機それぞれを管理する複数のオペレーティングシステムの内部時刻を規定するシステムタイマのカウンタの値を進める処理である
ことを特徴とする請求項１記載の計算機システム。
【請求項３】
前記第１の処理装置が前記第１の仮想処理手段に割り当てられているときに、前記割込みコントローラから前記第２の処理装置に対して、前記第１の割込み要求が発行されると、前記第１の処理装置を停止して前記第１の処理装置の前記第１の仮想処理手段への割り当てを解除するとともに前記第２の処理装置を前記第１の仮想処理手段に割り当てる処理装置管理部を有する
ことを特徴とする請求項１記載の計算機システム。
【請求項４】
前記処理装置管理部は、前記第２の処理装置が前記第２の仮想処理手段に割り当てられているときに、前記割込みコントローラから前記第２の処理装置に対して、前記第１の割込み要求が発行されると、前記第２の処理装置を前記第１の仮想処理手段に割り当てる
ことを特徴とする請求項３記載の計算機システム。
【請求項５】
前記第１の仮想計算機がマルチプロセッシング方式に対応したオペレーティングシステムで管理され、前記第１の仮想計算機が前記第１の仮想処理手段と第３の仮想処理手段とにより実行され、
前記第２の処理装置は、前記第１の仮想計算機の前記第２の処理を前記第３の仮想処理手段により実行するための第３の割込み要求を受け付けると前記第３の仮想処理手段に割り当てられる
ことを特徴とする請求項１記載の計算機システム。
【請求項６】
前記第２の処理装置は、前記第１の処理装置に比べて消費電力が少ない
ことを特徴とする請求項１記載の計算機システム
【請求項７】
複数の仮想処理手段により仮想計算機を２つ以上実行する計算機システムであって、計算処理を行う物理資源により構成され且つ第１の仮想処理手段が第１の仮想計算機の第１の処理を実行するときに第１の仮想処理手段に割り当てられ、第２の仮想処理手段が第２の仮想計算機の第１の処理を実行するときに第２の仮想処理手段に割り当てられる第１の処理装置と、計算処理を行う物理資源により構成され且つ前記第１の仮想計算機の第２の処理を第１の仮想処理手段により実行するための第１の割込み要求を受け付けると前記第１の仮想処理手段に割り当てられ、前記第２の仮想計算機の第２の処理を第２の仮想処理手段により実行するための第２の割込み要求を受け付けると前記第２の仮想処理手段に割り当てられる第２の処理専用の第２の処理装置と、前記第１の割込み要求または前記第２の割込み要求を前記第２の処理装置に対して発行する割込みコントローラとを備える計算機システムの処理方法であって、
前記第１の処理装置が前記第１の仮想処理手段に割り当てられているときに、前記割込みコントローラから前記第２の処理装置に対して、前記第１の割込み要求が発行されると、前記第１の処理装置を停止して前記第１の処理装置の前記第１の仮想処理手段への割り当てを解除するとともに前記第２の処理装置を前記第１の仮想処理手段に割り当てる処理装置切替ステップ
を含むことを特徴とする計算機システムの処理方法。
【請求項８】
前記処理装置切替ステップでは、前記第１の処理装置が前記第１の仮想処理手段に割り当てられているときに、前記割込みコントローラから前記第２の処理装置に対して、前記第２の割込み要求が発行されると、前記第２の処理装置を前記第２の仮想処理手段に割り当てる
ことを特徴とする請求項７記載の計算機システムの処理方法。
【請求項９】
複数の仮想処理手段により仮想計算機を２つ以上実行する計算機システム用集積回路であって、
計算処理を行う物理資源により構成され且つ第１の仮想処理手段が第１の仮想計算機の第１の処理を実行するときに第１の仮想処理手段に割り当てられ、第２の仮想処理手段が第２の仮想計算機の第１の処理を実行するときに第２の仮想処理手段に割り当てられる第１の処理装置と、
計算処理を行う物理資源により構成され且つ前記第１の仮想計算機の第２の処理を第１の仮想処理手段により実行するための第１の割込み要求を受け付けると前記第１の仮想処理手段に割り当てられ、前記第２の仮想計算機の第２の処理を第２の仮想処理手段により実行するための第２の割込み要求を受け付けると前記第２の仮想処理手段に割り当てられる第２の処理専用の第２の処理装置と、
前記第１の割込み要求または前記第２の割込み要求を前記第２の処理装置に対して発行する割込みコントローラとを備える
を備えることを特徴とする計算機システム用集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の仮想計算機を実現する計算機システムに関する。
【背景技術】
【０００２】
従来から、図１７に示すように、１つのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３００がメモリ３０２に記憶されたプログラムを実行することにより、互いに異なるオペレーティングシステム（図１７のＯＳ１１，ＯＳ１２）で管理される複数（図１７では、２つ）の仮想計算機３１０，３１１を実現する計算機システムが知られている（例えば、特許文献１、２参照）。なお、図１７は、ＣＰＵ３００がメモリ３０２上のプログラムを実行することにより仮想計算機３１０，３１１等が実現されている様子を概念的に示したものであり、仮想計算機３１０，３１１等が実際にメモリ３０２の一部を構成しているわけではない。【０００３】
この種の計算機システムは、仮想計算機３１０,３１１それぞれを実行する仮想ＣＰＵ（仮想処理手段）３４３,３４４を含むハイパーバイザ３１２を有している。そして、ハイパーバイザ３１２が、ＣＰＵ３００を仮想ＣＰＵ３４３と仮想ＣＰＵ３４４とに交互に割り当てる機能を有するものがある。なお、このハイパーバイザ３１２は、ＶＭ（Ｖｔｒｔｕａｌ  Ｍａｃｈｉｎｅ）モニタ或いはハードウェア分割制御部ともいわれている。【０００４】
この計算機システムでは、仮想計算機３１０でタスクＴ１１，Ｔ１２が実行され、仮想計算機３１１でタスクＴ２１，Ｔ２２が実行される。ＣＰＵ３００が、各仮想計算機３１０，３１１を実行する時間スケジュールは、ハイパーバイザ３１２が管理している。ハイパーバイザ３１２も、ＣＰＵ３００がメモリ３０２に記憶された適宜のプログラムを実行することにより実現されている。【０００５】
ところで、図１７に示す計算機システムでは、オペレーティングシステムＯＳ１１，ＯＳ１２の内部時刻を規定するシステムタイマＳＴ１,ＳＴ２のカウント値を一定の周期で進める処理（タイマ処理）が行われる。このタイマ処理は、オペレーティングシステムＯＳ１１，ＯＳ１２の内部時刻を進めるために行われる。また、このタイマ処理は、ＣＰＵ３００が、ハードウェアタイマ３０７に接続された割込みコントローラ３０６から一定の周期（例えば、ＵＮＩＸ（ＴＭ）系ＯＳでは、５ｍｓや１０ｍｓ）で発行される割込み要求（チック割込み）に従って、割込みハンドラ（チックハンドラ）を実行することにより進める。ここにおいて、ハードウェアタイマ３０７および割込みコントローラ３０６は、ＣＰＵ３００等とは別個のハードウェアにより構成されている。【０００６】
このタイマ処理を行う方法として、従来から、仮想計算機３１１が実行されている場合であって、仮想計算機３１０が実行されていないときに割込みコントローラ３０６から仮想計算機３１０に対してチック割込みが発行されたときに、ＣＰＵ３００が、その都度、仮想計算機３１１での計算処理を中断して、仮想計算機３１０でタイマ処理を行う方法、つまり、タイマ処理を行うためだけに、一時的に仮想計算機３１１から仮想計算機３１０に切り替える方法が提供されている。【０００７】
ところが、この方法では、仮想計算機３１１から仮想計算機３１０に切り替える際に、仮想計算機３１１を実行する仮想ＣＰＵ３４４が用いるデータ（レジスタ情報等を含む）をメモリ３０２上において仮想ＣＰＵを実現させるためのレジスタ情報等を格納しておく領域（ＣＰＵ用作業領域）から一時的にＣＰＵ用作業領域とは異なる退避領域に退避させ、その後、仮想計算機３１０を実行する仮想ＣＰＵ３４３が用いるデータをＣＰＵ用作業領域に読み込むことになる。すると、メモリ３０２上のＣＰＵ用作業領域と退避領域との間で行われるデータの読み込みおよび退避に起因してオーバーヘッドが大きくなってしまい、ひいては、計算機システム全体の処理効率の低下に繋がるおそれがあった。【０００８】
これに対して、従来から、２つの仮想計算機（第１の仮想計算機と第２の仮想計算機）を実現してなる計算機システムについて、第１の仮想計算機が実行されていないときに、ＣＰＵ等とは別個のハードウェアで構成された割込み要求発行手段から第１の仮想計算機に対してチック割込みが発行されても第１の仮想計算機についてのタイマ処理は行わず、次に第１の仮想計算機が実行されるタイミング（第２の仮想計算機から第１の仮想計算機へ切り替わるタイミング）で、タイマ処理を行う方法が提案されている（特許文献１参照）。この方法では、第２の仮想計算機から第１の仮想計算機へ切り替わるタイミングで、第１の仮想計算機のシステムタイマのカウント値を第１の仮想計算機が停止していた時間分だけ進める。【０００９】
この方法を採用すれば、仮想計算機３１０が実行されていないときに仮想計算機３１０に対してチック割込みが発生しても、仮想計算機３１１から仮想計算機３１０への切り替えを行わないので、仮想計算機３１０，３１１の切替えに伴うオーバーヘッドを削減することができる。【００１０】
また、従来から、複数のオペレーティングシステムを交互に実行する（別異のオペレーティングシステムで管理される仮想計算機を交互に実行するともいえる。）仮想計算機装置であって、あるオペレーティングシステムが実行されていないときに割込み要求発行手段から当該オペレーティングシステムに対して発行されたチック割込みに基づくタイマ処理を、次にオペレーティングシステムに割り当てられる実行期間内にまとめて行う仮想計算機装置が提案されている（特許文献２参照）。【００１１】
この仮想計算機装置では、割込み要求発行手段により、実行されていないオペレーティングシステムに対するチック割込みが発行されると、ハイパーバイザ（ハードウェア分割制御部）が、当該チック割込みのカウントだけを行う。【００１２】
そして、ハイパーバイザは、当該オペレーティングシステムの停止期間中に発行されたチック割込みの回数と、次に当該オペレーティングシステムに割り当てられる実行期間内に発行される予定のチック割込みの回数との加算値を算出し、当該オペレーティングシステムに割当られる実行時間を当該加算値で除した値を、新たなタイマ処理を行う周期とする。【００１３】
この仮想計算機装置も、実行されていないオペレーティングシステムに対してチック割込みが発生した場合、オペレーティングシステムを切り替えないので、オペレーティングシステムの切り替えに伴うオーバーヘッドを削減することができる。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平５−１５８７１０号公報
【特許文献２】特開２００１−１６６９５４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、特許文献１に記載の技術では、図１８に示すように、仮想計算機３１０が時刻Ｔ２で再び実行されると同時に、当該時刻Ｔ２から新たにチック割込みを開始するので、時刻Ｔ２以後のチック割込みのタイミングが、仮に時刻Ｔ１以前から時刻Ｔ２以後に亘って継続して仮想計算機３１０を実行されていたとした場合のチック割込みのタイミングに対して、ずれてしまうことがあった。例えば、仮想計算機３１１の停止時間（時刻Ｔ１から時刻Ｔ２の間）が仮想計算機３１１に対するチック割込みが発行される周期の整数倍でない場合、チック割込みのタイミングがずれてしまうことがあった（図１８中の太線の矢印および破線の矢印を参照）。そうすると、仮想計算機３１０で実行されるタスクが、所定の基準時刻からチック割込みが発行される周期の整数倍であって且つ仮想計算機３１０,３１１の切り替え周期よりも長い時間だけ経過したときに行う処理を含む場合、当該タスクが正常に実行されないおそれがあった。【００１６】
また、特許文献１に記載の技術では、仮想計算機３１０の停止中に割込み要求発行手段により発行される仮想計算機３１０に対するチック割込みをカウントする手段を用いない。従って、仮想計算機３１０の停止時間がシステムタイマの周期よりも長くなると、仮想計算機３１０の停止期間中に発生する予定であったチック割込み（図１８の時刻Ｔ１から時刻Ｔ２の間の破線矢印参照）がカウントされないこととなる。すると、仮想計算機３１０が、チック割込みのカウント数に基づいて行う処理を含むタスクを正常に実行できなくなるおそれがあった。【００１７】
また、特許文献２に記載の技術では、例えば、２つのオペレーティングシステムＯＳ１１，ＯＳ１２を交互に実行する場合、図１９に示すように、オペレーティングシステムＯＳ１１に割り当てられる実行期間内のチック割込みの周期が変動することになる（例えば、時刻Ｔ１以前におけるチック割込みの周期（図１９中の矢印）と時刻Ｔ２以降におけるチック割込みの周期（図１９中の太線の矢印）とで異なる。）。すると、仮想計算機で実行するアプリケーションプログラム（タスク）や仮想計算機で制御する周辺デバイスが、一定の周期で発生するトリガに基づいて動作するものであって、チック割込みをトリガとして用いるものであると、トリガの周期が変動することになるので正常に動作しなくなるおそれがあった。【００１８】
更に、オペレーティングシステムＯＳ１１が、例えば、ユーザインタフェースからの入力を所定の時間だけ待つ処理（入力待ち処理）を含むものであり、チック割込みの周期に基づいて計時するものである場合、チック割込みの周期が変動すると、当該入力待ち処理が正しく実行されなくなるおそれがあった。【００１９】
つまり、特許文献１および２に記載の技術では、割込み発生手段から一定の周期で発行される割込み要求に対してリアルタイムで実行する必要のある処理に異常をきたすおそれがあった。【００２０】
本発明は、上記事由に鑑みてなされたものであり、仮想計算機の切り替えに伴うオーバーヘッドを削減しながらも、外部からの割込み要求に対してリアルタイムで行われるタスクの異常や周辺デバイスの異常動作を防止できる計算機システムを提供することを目的としている。
【課題を解決するための手段】
【００２１】
本発明の計算機システムは、複数の仮想処理手段により仮想計算機を２つ以上実行する計算機システムであって、計算処理を行う物理資源により構成され且つ第１の仮想処理手段が第１の仮想計算機の第１の処理を実行するときに第１の仮想処理手段に割り当てられ、第２の仮想処理手段が第２の仮想計算機の第１の処理を実行するときに第２の仮想処理手段に割り当てられる第１の処理装置と、計算処理を行う物理資源により構成され且つ第１の仮想計算機の第２の処理を第１の仮想処理手段により実行するための第１の割込み要求を受け付けて第１の仮想処理手段に割り当てられ、第２の仮想計算機の第２の処理を第２の仮想処理手段により実行するための第２の割込み要求を受け付けると第２の仮想処理手段に割り当てられる第２の処理専用の第２の処理装置と、第１の割込み要求または第２の割込み要求を第２の処理装置に対して発行する割込みコントローラとを備える。
【発明の効果】
【００２２】
本構成によれば、第２の仮想計算機の第１の処理を第１の処理装置を第２の仮想処理手段に割り当てて実行している場合であって、第１の仮想計算機の第２の処理を実行するときに、第１の処理装置を第２の仮想処理手段から第１の仮想処理手段に割当てを変更する必要がないので、仮想計算機を実行する仮想処理手段の切り替えに伴うオーバーヘッドを削減することができる。また、第２の処理装置が割り当てられた第２の仮想処理手段が、割込みコントローラから発行される第２の割込み要求にリアルタイムで追従して、第２の処理を実行するので、各仮想計算機における第２の処理のリアルタイム性を維持することができる。【００２３】
また、本発明に係る計算機システムは、第２の処理が、複数の仮想計算機それぞれを管理する複数のオペレーティングシステムの内部時刻を規定するシステムタイマのカウンタの値を進める処理であってもよい。【００２４】
本構成によれば、仮想計算機を管理するオペレーティングシステムのシステムタイマのカウンタの値を更新する処理のリアルタイム性を維持することができる。【００２５】
また、本発明に係る計算機システムは、第１の処理装置が第１の仮想処理手段に割り当てられているときに、割込みコントローラから第２の処理装置に対して、第１の割込み要求が発行されると、第１の処理装置を停止して第１の処理装置の第１の仮想処理手段への割り当てを解除するとともに第２の処理装置を第１の仮想処理手段に割り当てる処理装置管理部を有するものであってもよい。【００２６】
本構成によれば、第１の処理装置が第１の仮想処理手段に割り当てられているときに、割込みコントローラから第２の処理装置に対して、第１の仮想処理手段が仮想計算機の第１の処理を実行するための割込みが発行されると、処理装置管理部が、第１の処理装置を停止して第１の処理装置の第１の仮想処理手段への割り当てを解除するとともに第２の処理装置を第１の仮想処理手段に割り当てることにより、第１の仮想処理手段が実行する処理の内容に応じて、第１の仮想処理手段に割り当てる物理資源を適切に切り替えることができるので、第１の仮想処理手段が実行する処理に最も適した物理資源を有効に活用することができる。【００２７】
また、本発明に係る計算機システムは、処理装置管理部が、第１の処理装置が第１の仮想処理手段に割り当てられているときに、割込みコントローラから第２の処理装置に対して、第２の割込み要求が発行されると、第２の処理装置を第２の仮想処理手段に割り当てるものであってもよい。【００２８】
本構成によれば、第１の処理装置が第１の仮想処理手段に割り当てられているときに、割込みコントローラから第２の処理装置に対して、第２の仮想処理手段が仮想計算機の第２の処理を行うための割込みが発行されると、処理装置管理部が、第２の処理装置を第２の仮想処理手段に割り当てることにより、第１の仮想処理手段が実行する第１の処理を中断することなく第２の仮想処理手段に第２の処理を実行させることができるので、計算機システム全体の処理効率を向上させることができる。【００２９】
また、本発明に係る計算機システムは、第１の仮想計算機がマルチプロセッシング方式に対応したオペレーティングシステムで管理され、第１の仮想計算機が第１の仮想処理手段と第３の仮想処理手段とにより実行され、第２の処理装置が、第１の仮想計算機の第２の処理を第３の仮想処理手段により実行する旨の第３の割込み要求を受け付けると第３の仮想処理手段に割り当てられるものであってもよい。【００３０】
本構成によれば、第１の仮想計算機の第１の処理の実行を中断することなく、第１の仮想計算機の第２の処理を実行することができるので、計算機システム全体の処理効率を向上させることができる。【００３１】
また、本発明に係る計算機システムは、第２の処理装置が、第１の処理装置に比べて消費電力が少ないものであってもよい。【００３２】
本構成によれば、第２の処理を、第１の処理装置に比べて消費電力の少ない第２の処理装置で実行することで、計算機システム全体で消費される電力を削減することができる。【００３３】
また、本発明は、複数の仮想処理手段により仮想計算機を２つ以上実行する計算機システムであって、計算処理を行う物理資源により構成され且つ第１の仮想処理手段が第１の仮想計算機の第１の処理を実行するときに第１の仮想処理手段に割り当てられ、第２の仮想処理手段が第２の仮想計算機の第１の処理を実行するときに第２の仮想処理手段に割り当てられる第１の処理装置と、計算処理を行う物理資源により構成され且つ第１の仮想計算機の第２の処理を第１の仮想処理手段により実行するための第１の割込み要求を受け付けると第１の仮想処理手段に割り当てられ、第２の仮想計算機の第２の処理を第２の仮想処理手段により実行するための第２の割込み要求を受け付けると第２の仮想処理手段に割り当てられる第２の処理専用の第２の処理装置と、第１の割込み要求または第２の割込み要求を第２の処理装置に対して発行する割込みコントローラとを備える計算機システムの処理方法であって、第１の処理装置が第１の仮想処理手段に割り当てられているときに、割込みコントローラから第２の処理装置に対して、第１の割込み要求が発行されると、第１の処理装置を停止して第１の処理装置の第１の仮想処理手段への割り当てを解除するとともに第２の処理装置を第１の仮想処理手段に割り当てる処理装置切替ステップを含む計算機システムの処理方法であってもよい。【００３４】
本構成によれば、第１の処理装置が第１の仮想処理手段に割り当てられているときに、割込みコントローラから第２の処理装置に対して、第１の仮想処理手段が仮想計算機の第１の処理を実行するための割込みが発行されると、第１の処理装置を停止して第１の処理装置の第１の仮想処理手段への割り当てを解除するとともに第２の処理装置を第１の仮想処理手段に割り当てることにより、第１の仮想処理手段が実行する処理の内容に応じて、第１の仮想処理手段に割り当てる物理資源を適切に切り替えることができるので、第１の仮想処理手段が実行する処理に最も適した物理資源を有効に活用することができる。【００３５】
また、本発明に係る計算機システムは、処理装置切替ステップで、第１の処理装置が第１の仮想処理手段に割り当てられているときに、割込みコントローラから第２の処理装置に対して、第２の割込み要求が発行されると、第２の処理装置を第２の仮想処理手段に割り当てる計算機システムの処理方法であってもよい。【００３６】
本構成によれば、第１の処理装置が第１の仮想処理手段に割り当てられているときに、割込みコントローラから第２の処理装置に対して、第２の仮想処理手段が仮想計算機の第２の処理を行うための割込みが発行されると、処理装置管理部が、第２の処理装置を第２の仮想処理手段に割り当てることにより、第１の仮想処理手段が実行する第１の処理を中断することなく第２の仮想処理手段に第２の処理を実行させることができるので、計算機システム全体の処理効率を向上させることができる。【００３７】
また、本発明は、複数の仮想処理手段により仮想計算機を２つ以上実行する計算機システム用集積回路であって、計算処理を行う物理資源により構成され且つ第１の仮想処理手段が第１の仮想計算機の第１の処理を実行するときに第１の仮想処理手段に割り当てられ、第２の仮想処理手段が第２の仮想計算機の第１の処理を実行するときに第２の仮想処理手段に割り当てられる第１の処理装置と、計算処理を行う物理資源により構成され且つ第１の仮想計算機の第２の処理を第１の仮想処理手段により実行するための第１の割込み要求を受け付けると第１の仮想処理手段に割り当てられ、第２の仮想計算機の第２の処理を第２の仮想処理手段により実行するための第２の割込み要求を受け付けると第２の仮想処理手段に割り当てられる第２の処理専用の第２の処理装置と、第１の割込み要求または第２の割込み要求を第２の処理装置に対して発行する割込みコントローラとを備える計算機システム用集積回路であってもよい。【００３８】
本構成によれば、計算機システムの小型化を図ることができる。
【図面の簡単な説明】
【００３９】
【図１】実施の形態１に係る計算機システムの全体構成図である。
【図２】実施の形態１に係る計算機システムの一部を構成するハードウェアタイマの動作を説明するための示す図である。
【図３】実施の形態１に係る計算機システムの動作説明図である。
【図４】実施の形態１に係る計算機システムの動作説明図である。
【図５】実施の形態１に係る計算機システムの動作のフローチャートである。
【図６】実施の形態１に係る計算機システムの動作のフローチャートである。
【図７】実施の形態１に係る計算機システムの動作説明図である。
【図８】実施の形態１に係る計算機システムの動作説明図である。
【図９】実施の形態１に係る計算機システムの動作説明図である。
【図１０】実施の形態１に係る計算機システムの動作説明図である。
【図１１】実施の形態１に係る計算機システムの動作説明図である。
【図１２】実施の形態１に係る計算機システムの動作説明図である。
【図１３】実施の形態２に係る計算機システムの全体構成図である。
【図１４】実施の形態２に係る計算機システムの動作説明図である。
【図１５】実施の形態２に係る計算機システムの動作のフローチャートである。
【図１６】実施の形態２に係る計算機システムの動作説明図である。
【図１７】従来例の全体構成図である。
【図１８】従来例の動作説明図である。
【図１９】他の従来例の動作説明図である。
【発明を実施するための形態】
【００４０】
＜実施の形態１＞
＜１＞構成
＜１−１＞全体構成
本実施の形態に係る計算機システムの全体構成図を図１に示す。
【００４１】
計算機システムは、メモリ１０２と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０３と、キャッシュメモリ１０４と、チックＣＰＵ１０５と、割込みコントローラ１０６と、ハードウェアタイマ１０７とを含んで構成される。
【００４２】
また、メモリ１０２、ＣＰＵ１０３、キャッシュメモリ１０４、チックＣＰＵ１０５、割込みコントローラ１０６およびハードウェアタイマ１０７それぞれは、バス１０１により接続されている。
【００４３】
ＣＰＵ１０３は、メモリ１０２に記憶されているプログラムを読み出して実行することにより、後述の仮想計算機１１０，１１１の計算処理を実行する仮想ＣＰＵ１４３，１４４を実現する。ここで、ＣＰＵ１０３は、仮想ＣＰＵ１４３、１４４に対して交互に割り当てられる。
【００４４】
チックＣＰＵ１０５は、ＣＰＵ１０３よりも低速で小規模なプロセッサにより構成され、ＣＰＵ１０３に比べて消費電力が少なくコストも低い。チックＣＰＵ１０５は、仮想計算機１１０，１１１の内部時刻を規定するシステムタイマＳＴ１,ＳＴ２を進める処理であるタイマ処理を行うときだけ、仮想ＣＰＵ１４３または仮想ＣＰＵ１４４に割り当てられる。本実施の形態の計算機システムにおいて、タイマ処理を行う際の動作についての詳細は＜２＞で述べる。
【００４５】
メモリ１０２は、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等により構成される。また、メモリ１０２は、ＣＰＵ１０３を後述の仮想ＣＰＵ１４３,１４４に割り当てるためのレジスタ情報等からなるデータＤ１,Ｄ２（図３参照）を格納しておく領域であるＣＰＵ用作業領域１０２ａ１と、チックＣＰＵ１０５を後述の仮想ＣＰＵ１４３,１４４に割り当てるためのレジスタ情報等からなるデータＤ１ａ，Ｄ２ａ（図４参照）を格納しておく領域であるチックＣＰＵ用作業領域１０２ａ２と、データＤ１,Ｄ２,Ｄ１ａを一時的に退避させておくための第１の退避領域１０２ｂおよび第２の退避領域１０２ｃとが設けられてなる。
【００４６】
つまり、データＤ１は、ＣＰＵ１０３を仮想ＣＰＵ１４３に割り当てて、仮想ＣＰＵ１４３により仮想計算機１１０のタイマ処理以外の計算処理を実行するために必要となり、データＤ２は、ＣＰＵ１０３を仮想ＣＰＵ１４４に割り当てて、仮想ＣＰＵ１４４により仮想計算機１１１のタイマ処理以外の計算処理を実行するために必要となる。また、データＤ１ａ，Ｄ２ａは、チックＣＰＵ１０５を仮想ＣＰＵ１４３，１４４に割り当てて、仮想ＣＰＵ１４３，１４４により仮想計算機１１０，１１１のタイマ処理を実行するために必要となる。
【００４７】
キャッシュメモリ１０４は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等により構成される。キャッシュメモリ１０４は、ＣＰＵ１０３またはチックＣＰＵ１０５がメモリ１０２から読み出すプログラムに含まれるコマンドやＣＰＵ１０３またはチックＣＰＵ１０５がプログラムを実行する際に使用するデータを一時的に記憶する。また、キャッシュメモリ１０４は、ＣＰＵ１０３またはチックＣＰＵ１０５がメモリ１０２に書き込むデータも一時的に記憶する。
【００４８】
ハードウェアタイマ１０７は、図２（ａ）に示すように、割込み要求信号を出力する第１の信号出力ポート１０７３および第２の信号出力ポート１０７４と、第１の信号出力ポート１０７３から割込み要求信号を出力するタイミングを決める第１のダウンカウンタ１０７１および第２の信号出力ポート１０７４から割込み要求信号を出力するタイミングを決める第２のダウンカウンタ１０７２とを備える。ここで、第１の信号出力ポート１０７３および第２の信号出力ポート１０７４は、それぞれ割込み要求信号線１０８ａ１,１０８ａ２を介して、割込みコントローラ１０６に接続されている。また、第１のダウンカウンタ１０７１および第２のダウンカウンタ１０７２は、クロック発生手段１０７ａに接続されており、クロック発生手段１０７ａから入力されるクロック信号に基づいて値をデクリメントしていく。ここで、各信号出力ポート１０７３，１０７４には、各ダウンカウンタ１０７１，１０７２の符号ビット１０７１ａ，１０７２ａの値が出力されるようになっている。従って、例えば、図２（ｂ）に示すように、第１のダウンカウンタの値がアンダーフローして符号ビットが「１」に更新されると、第１の信号出力ポート１０７３から割込みコントローラ１０６に対して割込み要求信号が出力されることになる。
【００４９】
割込みコントローラ１０６は、汎用のＰＩＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ）により構成され、第１の信号出力ポートから出力された割込み要求信号が入力される第１の信号入力端子（図示せず）と、第２の信号出力ポートから出力された割込み要求信号が入力される第２の信号入力端子（図示せず）とを備える。また、割込みコントローラ１０６は、第１の信号入力端子に割込み要求信号が入力されると割込み要求を出力する第１の割込み出力端子（図示せず）と、第２の信号入力端子に割込み要求信号が入力されると割込み要求を出力する第２の割込み出力端子（図示せず）とを備える。ここで、第１の割込み出力端子は、割込み信号線１０８ｂ１を介してＣＰＵ１０３に接続され、第２の割込み出力端子は、割込み信号線１０８ｂ２を介してチックＣＰＵ１０５に接続されている。そして、割込みコントローラ１０６は、ハードウェアタイマ１０７から割込み要求信号が入力される信号入力端子の種類に応じて、ＣＰＵ１０３またはチックＣＰＵ１０５に対して割込み要求を行う。例えば、第１の信号入力端子に割込み要求信号が入力されると、割込みコントローラ１０６は、仮想計算機１１０のタイマ処理（第２の処理に対応する。）を仮想ＣＰＵ１４３により実行するための割込み要求（チック割込み）をチックＣＰＵ１０５に対して行う。
【００５０】
また、割込みコントローラ１０６は、割込み要求を出力した割込み出力端子の識別情報等から構成される割込み要求情報を保持している。
＜１−２＞ハイパーバイザ
ハイパーバイザ１１２は、図１に示すように、仮想ＣＰＵ１４３、１４４、割込み処理部１４０、仮想計算機スケジューラ（ＶＭ（Ｖｔｒｔｕａｌ  Ｍａｃｈｉｎｅ）スケジューラ）１４１およびＣＰＵ管理部１４２を含んで構成される。ここで、ハイパーバイザ１１２は、割込みコントローラ１０６から発行される割込み要求に対応してハイパーバイザ１１２で実行されるハンドラを特定するベクタを管理している。このべクタで特定されるハンドラには、ＣＰＵ１０３が割込みコントローラ１０６から割込み要求を受けると、後述の割込み処理部１４０による割込み要求の種類および割込み対象となる仮想計算機１１０，１１１を特定することを内容とするハンドラが含まれる。なお、図１は、ＣＰＵ１０３がメモリ１０２上のプログラムを実行することによりハイパーバイザ１１２が実現されている様子を概念的に示したものであり、ハイパーバイザ１１２が実際にメモリ１０２の一部を構成しているわけではない。
【００５１】
仮想ＣＰＵ１４３、１４４は、ＣＰＵ１０３により実現される。ここで、仮想ＣＰＵ１４３は、第１の仮想処理手段に対応し、仮想ＣＰＵ１４４は、第２の仮想処理手段に対応する。
【００５２】
割込み処理部１４０は、割込みコントローラ１０６から割込み要求が発行されると、ハイパーバイザ１１２が管理する割込みベクタに従って、割込みハンドラを実行することにより、割込み要求の種類および割込み対象となる仮想計算機１１０，１１１を特定し、ＶＭスケジューラ１４１に通知する。ここで、割込み処理部１４０は、割込みコントローラ１０６に保持されている割込み要求情報にアクセスして、割込み要求の種類および割込みの対象とを特定する。
【００５３】
ＶＭスケジューラ１４１は、通常、自らの保持する仮想ＣＰＵ１４３,１４４へのＣＰＵ１０３の割当てスケジュールに基づいて、仮想ＣＰＵ１４３による仮想計算機１１０の実行と仮想ＣＰＵ１４４による仮想計算機１１１の実行とを交互に繰り返す。そして、割込みコントローラ１０６が割込み要求を発行した場合、ＶＭスケジューラ１４１は、割込み要求に起因する処理を優先的に行えるようにＣＰＵ１０３およびチックＣＰＵ１０５の仮想ＣＰＵ１４３,１４４への割当てを決定する。つまり、ＶＭスケジューラ１４１は、自らが保持する割当てスケジュールと、割込み処理部１４０から通知される割込み要求の種類および割込み対象に関する情報とに基づいて、ＣＰＵ１０３およびチックＣＰＵ１０５の仮想ＣＰＵ１４３,１４４への割当てを適宜決定する。また、ＶＭスケジューラ１４１は、割込み処理部１４０で特定された割込み要求の種類および割込みの対象となる仮想計算機１１０，１１１に基づいて、仮想ＣＰＵ１４３，１４４に割り当てるＣＰＵ（ＣＰＵ１０３かチックＣＰＵ１０５）を決定する。また、ＶＭスケジューラ１４１は、仮想ＣＰＵ１４３,１４４が仮想計算機１１０,１１１のタイマ処理以外の計算処理を実行しているか否かを判断する機能を有しており、判断結果を仮想ＣＰＵ１４３，１４４へのＣＰＵ１０３またはチックＣＰＵ１０５の割り当てに反映させる。
【００５４】
ＶＭスケジューラ１４１は、決定した内容で、仮想ＣＰＵ１４３，１４４にＣＰＵ１０３またはチックＣＰＵ１０５を割り当てるようにＣＰＵ管理部１４２に指示する。
【００５５】
ＣＰＵ管理部１４２は、ＶＭスケジューラ１４１から通知された割り当て内容に従って、ＣＰＵ１０３またはチックＣＰＵ１０５を仮想ＣＰＵ１４３,１４４に割り当てる。また、ＣＰＵ管理部１４２は、仮想ＣＰＵ１４３,１４４それぞれが仮想計算機１１０,１１１を実行する際に使用するデータの管理も行う。
【００５６】
例えば、仮想ＣＰＵ１４４が仮想計算機１１１のタイマ処理以外の計算処理を実行しているときに、ＣＰＵ管理部１４２が、仮想ＣＰＵ１４３に仮想計算機１１０でタイマ処理以外の計算処理を実行させるとする。
【００５７】
この場合、ＣＰＵ管理部１４２は、ＣＰＵ１０３を仮想ＣＰＵ１４３に割り当てる。ここでは、ＣＰＵ管理部１４２は、データＤ２を一時的にメモリ１０２上のＣＰＵ用作業領域１０２ａ１から第２の退避領域１０２ｃに退避させる（図３（ａ））。
【００５８】
その後、ＣＰＵ管理部１４２が、予め第１の退避領域１０２ｂに退避させてあるデータＤ１をＣＰＵ用作業領域１０２ａ１に読み込む（図３（ｂ））。
【００５９】
また、仮想ＣＰＵ１４４が仮想計算機１１１でタイマ処理以外の計算処理を実行しているときに、ＣＰＵ管理部１４２が、仮想ＣＰＵ１４３に仮想計算機１１０のタイマ処理を実行させるとする。
【００６０】
この場合、ＣＰＵ管理部１４２は、ＣＰＵ１０３の仮想ＣＰＵ１４４への割り当てをそのままにして、チックＣＰＵ１０５を仮想ＣＰＵ１４３に割り当てる。ここでは、ＣＰＵ管理部１４２は、図４（ａ）に示すように、予め第１の退避領域１０２ｂに退避させておいたデータＤ１ａをチックＣＰＵ用作業領域１０２ａ２に読み込む。その後、仮想ＣＰＵ１４３による仮想計算機１１０のタイマ処理が終了すると、ＣＰＵ管理部１４２は、データＤ１ａをチックＣＰＵ用作業領域１０２ａ２から再び第１の退避領域１０２ｂに退避させる。そして、チックＣＰＵ１０５を仮想ＣＰＵ１４４に割り当てるときは、ＣＰＵ管理部１４２は、予め第２の退避領域１０２ｃに退避させておいたデータＤ２ａをチックＣＰＵ用作業領域１０２ａ２に読み込む。
＜１−３＞仮想計算機
仮想計算機１１０、１１１は、それぞれオペレーティングシステムＯＳ１，ＯＳ２によって管理されている。図１に示す例では、仮想計算機１１０では、オペレーティングシステムＯＳ１上でアプリケーションタスクＴ１１，Ｔ１２が実行され、仮想計算機１１１では，オペレーティングシステムＯＳ２上でアプリケーションタスクＴ２１，Ｔ２２が実行されている。なお、図１は、ＣＰＵ１０３がメモリ１０２上のプログラムを実行することにより仮想計算機１１０，１１１が実現されている様子を概念的に示したものであり、仮想計算機１１０，１１１が実際にメモリ１０２の一部を構成しているわけではない。
【００６１】
各オペレーティングシステムＯＳ１、ＯＳ２は、仮想ＣＰＵ１４３,１４４がハンドラを実行する際に参照する割込みコントローラ１０６から通知される割込み要求の種類と、各割込み要求に対応した割込みハンドラのエントリーアドレスとから構成される割込みテーブルＴｂ１、Ｔｂ２を管理している。これにより、仮想ＣＰＵ１４３，１４４は、割込みテーブルＴｂ１，Ｔｂ２を参照して、当該割込み要求の種類からエントリーアドレスを特定し、当該エントリーアドレスで特定されるハンドラを実行する。
【００６２】
また、割込みテーブルＴｂ１，Ｔｂ２に登録されたエントリーアドレスには、タイマ処理を行う割込みハンドラ（チックハンドラ）を特定するものが含まれている。なお、仮想ＣＰＵ１４３,１４４が、チックハンドラを実行すると、システムタイマＳＴ１,ＳＴ２のカウンタ値が１だけ増加する（つまり、内部時刻を１単位進める）。
【００６３】
また、割込みテーブルＴｂ１，Ｔｂ２は、割込みコントローラ１０６からチック割込み要求が発行されたときに、チックハンドラに対応するエントリーアドレスを特定するために仮想ＣＰＵ１４３,１４４により参照される。
＜２＞動作
本実施の形態の計算機システムの動作のフローチャートを図５および図６に示す。
【００６４】
まず、割込みコントローラ１０６は、ハードウェアタイマ１０７から割込み要求信号が入力されると、当該割込み要求信号が、チック割込みであるか否かを判断する（ステップＳ１０１）。ここでは、割込みコントローラ１０６は、割込み要求信号が第１の信号入力端子と第２の信号入力端子のいずれに入力されたかにより、割り込み要求信号の種類を判断する。例えば、割込み要求信号が第２の信号入力端子に入力されると、割込みコントローラ１０６は、チック割込みであると判断する。
【００６５】
ステップＳ１０１において、割込みコントローラ１０６が割込み要求信号がチック割込みを要求するものではないと判断すると（ステップＳ１０１：Ｎｏ）、割込みコントローラ１０６は、割込み信号線１０８ｂ１を介してＣＰＵ１０３に割込み要求を発行する（ステップＳ１０２）。このとき、割込み処理部１４０が、割込みコントローラ１０６に保持されている割込み要求情報にアクセスして、割込み要求の種類および割込み対象となる仮想ＣＰＵ（ここでは、仮想ＣＰＵ１４３とする。）の特定を行い、割込み要求の種類および割込み対象をＶＭスケジューラ１４１に通知する（ステップＳ１０３）。ここでは、割込み処理部１４０が、割込み要求の種類がチック割込み以外の割込み要求であることと、割込みの対象が仮想ＣＰＵ１４３であることをＶＭスケジューラ１４１に通知する。
【００６６】
次に、ＶＭスケジューラ１４１が、仮想ＣＰＵ１４３が仮想計算機１１０のタイマ処理以外の計算処理（第１の処理に対応する。）を実行中であるか否か、言い換えると、割込み対象の仮想ＣＰＵ１４３が動作中であるか否かを判断し（ステップＳ１０４）、判断した結果をＣＰＵ管理部１４２に通知する。
【００６７】
ステップＳ１０４において、ＶＭスケジューラ１４１により仮想ＣＰＵ１４３が停止中であると判断された場合（ステップＳ１０４：Ｎｏ）（図７（ａ））、ＣＰＵ管理部１４２は、仮想ＣＰＵ１４４による仮想計算機１１１のタイマ処理以外の計算処理を停止させ、ＣＰＵ１０３の仮想ＣＰＵ１４４への割り当てを解除する。その後、ＣＰＵ１０３を仮想ＣＰＵ１４３に割り当てる（ＣＰＵ１０３の仮想ＣＰＵ１４３，１４４への割り当てを変更する。）（図７（ｂ））（ステップＳ１０５）。このとき、ＣＰＵ管理部１４２は、メモリ１０２上の作業領域１０２ａに読み出されているデータＤ２をメモリ１０２上の第２の退避領域１０２ｃに退避させ（図３（ａ）参照）、予め第１の退避領域１０２ｂに退避させておいたデータＤ１をＣＰＵ用作業領域１０２ａ１に読み出す（図３（ｂ）参照）。
【００６８】
その後、割込み処理部１４０が、仮想ＣＰＵ１４３に対して、割込みコントローラ１０６がチック割込み以外の割込み要求を発行した旨を通知する（ステップ１０６）。割込み要求の通知を受けた仮想ＣＰＵ１４３は、割込みテーブルＴｂ１に登録されたエントリーアドレスに従って、割込みハンドラＨ１を実行する（図７（ｃ））（ステップＳ１０７）。そして、仮想ＣＰＵ１４３による当該割込みハンドラＨ１の実行が終了すると、割込み処理部１４０は、割込みハンドラＨ１の実行が終了したことをＶＭスケジューラ１４１に通知する。割込みハンドラＨ１の実行終了の通知を受けたＶＭスケジューラ１４１は、仮想ＣＰＵ１４３にＣＰＵ１０３を割り当てるようにＣＰＵ管理部１４２に指示する（ステップＳ１０８）。そして、ＣＰＵ管理部１４２は、ＣＰＵ１０３の仮想ＣＰＵ１４３への割り当てを解除し、ＣＰＵ１０３を仮想ＣＰＵ１４４に割り当てる（ＣＰＵ１０３の仮想ＣＰＵ１４３，１４４への割り当てを変更する。）（図７（ｄ））（ステップＳ１０９）。
【００６９】
このとき、ＣＰＵ管理部１４２は、図８（ａ）に示すように、メモリ１０２上のＣＰＵ用作業領域１０２ａ１に読み込まれているデータＤ１をメモリ１０２上の第１の退避領域１０２ｂに退避させ、図８（ｂ）に示すように、第２の退避領域１０２ｂに退避させておいたデータＤ２をＣＰＵ用作業領域１０２ａ１に読み込む。
【００７０】
一方、ステップＳ１０１において、割込みコントローラ１０６が割込み要求信号がチック割込みを要求するものと判断すると（ステップＳ１０１：Ｙｅｓ）、割込みコントローラ１０６は、割込み信号線１０８ｂ２を介してチックＣＰＵ１０５に割込み要求を発行する（ステップＳ１１０）。このとき、割込み要求を受けたチックＣＰＵ１０５は、動作を開始する（ステップＳ１１１）。そして、割込み処理部１４０が、割込みコントローラ１０６に保持されている割込み要求情報にアクセスして、割込み要求の種類および割込み対象となる仮想ＣＰＵ１４３の特定を行い、割込み要求の種類および割込み対象をＶＭスケジューラ１４１に通知する（ステップＳ１１２）。ここでは、チックＣＰＵ１０５が、仮想計算機１１０のタイマ処理を仮想ＣＰＵ１４３により実行するためのチック割込みを受け付けたとする。この場合、割込み処理部１４０が、割込み要求の種類がチック割込みであることと、割込みの対象が仮想計算機１１０であることをＶＭスケジューラ１４１に通知する。
【００７１】
次に、ＶＭスケジューラ１４１が、仮想ＣＰＵ１４３によって仮想計算機１１０のタイマ処理以外の計算処理が実行中であるか否か、言い換えると、割込み対象の仮想ＣＰＵ１４３が動作中であるか否かを判断し（ステップＳ１１３）、結果をＣＰＵ管理部１４２に通知する。
【００７２】
ステップＳ１１３において、仮想ＣＰＵ１４３が動作中であると判断した場合（図９（ａ））（ステップＳ１１３：Ｙｅｓ）、ＣＰＵ管理部１４２は、仮想ＣＰＵ１４３に割り当てられているＣＰＵ１０３を一時停止させる（ステップＳ１１４）。そして、ＣＰＵ管理部１４２は、ＣＰＵ１０３が停止したことを確認した後に、ＣＰＵ１０３の仮想ＣＰＵ１４３への割当てを解除して、チックＣＰＵ１０５を仮想ＣＰＵ１４３に割り当てる（仮想ＣＰＵへの割当てを変更する）（図９（ｂ））（ステップＳ１１５）。このとき、ＣＰＵ管理部１４２は、図１０（ａ）に示すように、メモリ１０２上のＣＰＵ用作業領域１０２ａ１に格納されているデータＤ１をそのままにして、予め第１の退避領域１０２ｂに退避させておいたデータＤ１ａをチックＣＰＵ用作業領域１０２ａ２に読み込む。
【００７３】
その後、割込み処理部１４０が、仮想ＣＰＵ１４３に対して、割込みコントローラ１０６がチック割込みを発行した旨を通知する（ステップＳ１１６）。割込み要求の通知を受けた仮想ＣＰＵ１４３は、割込みテーブルＴｂ１に登録されたエントリーアドレスに従って、チックハンドラを実行する（図９（ｃ））（ステップＳ１１７）。そして、仮想ＣＰＵ１４３によるチックハンドラの実行が終了すると、割込み処理部１４０は、チックハンドラの実行が終了したことをＶＭスケジューラ１４１に通知する。
【００７４】
チックハンドラの実行終了の通知を受けたＶＭスケジューラ１４１は、チックＣＰＵ１０５の仮想ＣＰＵへの割当てを解除して、ＣＰＵ１０３を仮想ＣＰＵ１４３に割り当てる（仮想ＣＰＵ１４３への割当てを変更する）ようにＣＰＵ管理部１４２に指示する（ステップＳ１１８）。続いて、ＣＰＵ管理部１４２が、ＣＰＵ１０３を仮想ＣＰＵ１４３に割り当てる（ステップＳ１１９）。このとき、ＣＰＵ管理部１４２は、図１０（ｂ）に示すように、メモリ１０２上のチックＣＰＵ用作業領域１０２ａ２に格納されているデータＤ１ａを第１の退避領域１０２ｂに退避させる。
【００７５】
その後、ＣＰＵ１０３は、一時停止を解除して動作を開始する（図９（ｄ））（ステップＳ１２０）。その後、チックＣＰＵ１０５が、停止する（ステップＳ１２１）。
【００７６】
一方、ステップＳ１１３にて、仮想ＣＰＵ１４３が停止中であると判断した場合（図１１（ａ））（ステップＳ１１３：Ｎｏ）、ＣＰＵ管理部１４２は、仮想ＣＰＵ１４３にチックＣＰＵ１０５を割り当てる（図１１（ｂ））（ステップＳ１２１）。このとき、ＣＰＵ１０３が、仮想ＣＰＵ１４４に割り当てられているときは、そのままの状態を維持する。ここでは、ＣＰＵ管理部１４２は、図１２（ａ）に示すように、メモリ１０２上のＣＰＵ用作業領域１０２ａ１に格納されているデータＤ２をそのままにして、予め第１の退避領域１０２ｂに退避させておいたデータＤ１ａをチックＣＰＵ用作業領域１０２ａ２に読み込む。
【００７７】
その後、割込み処理部１４０が、仮想ＣＰＵ１４３に対して、割込みコントローラ１０５がチック割込みを発行した旨を通知する（ステップＳ１２３）。割込み要求の通知を受けた仮想ＣＰＵ１４３は、割込みテーブルＴｂ１に登録されたエントリーアドレスに従って、チックハンドラを実行し、システムタイマＳＴ１のカウント値を進める（図９（ｃ））（ステップＳ１２４）。そして、仮想ＣＰＵ１４３によるチックハンドラの実行が終了すると、割込み処理部１４０は、チックハンドラの実行が終了したことをＶＭスケジューラ１４１に通知する。チックハンドラの実行終了の通知を受けたＶＭスケジューラ１４１は、チックＣＰＵ１０５の仮想ＣＰＵ１４３への割り当てを解除するように、ＣＰＵ管理部１４２に指示する（ステップＳ１２５）。その後、ＣＰＵ管理部１４２が、チックＣＰＵ１０３の仮想ＣＰＵ１４３への割り当てを解除する（図９（ｄ））（ステップＳ１２６）。
【００７８】
そして、チックＣＰＵ１０５の仮想ＣＰＵ１４３への割り当てが解除されると、チックＣＰＵ１０５は停止する（ステップＳ１２１）。
【００７９】
結局、本実施の形態では、メモリ１０２上にＣＰＵ用タイマ領域１０２ａ１とは別にチックＣＰＵ用タイマ領域１０２ａ２が設けられていることにより、チックＣＰＵ１０５を仮想ＣＰＵ２４３,２４４に割り当ててタイマ処理を行うときに、ＣＰＵ用作業領域１０２ａ１に格納されたデータを退避させる必要がないので、データの退避に起因したオーバーヘッドを低減することができるから、計算機システムの処理効率の低下を抑制することができる。また、チックＣＰＵ１０５が割り当てられた仮想ＣＰＵ１４３，１４４が、割込みコントローラ１０６から発行されるチック割込みにリアルタイムで追従して、タイマ処理を実行するので、各仮想計算機１１０，１１１におけるタイマ処理のリアルタイム性を維持することができる。
＜実施の形態２＞
＜１＞構成
＜１−１＞全体構成
本実施の形態に係る計算機システムの構成を図１３に示す。
【００８０】
計算機システム１００は、実施の形態１と略同様の構成を備え、２つのＣＰＵ２０１，２０２を含んで構成される点とメモリ１０２上の領域（記憶領域）の割り当てが実施の形態１と相違する。なお、実施の形態１と同様の構成については同一の符号を付して説明を省略する。
【００８１】
ＣＰＵ２０１，２０２は、動作クロック周波数や消費電力が同一であり、演算性能も同一であって、同一の命令セットアーキテクチャを有するプロセッサにより構成されている。
【００８２】
メモリ１０２は、図１４に示すように、ＣＰＵ２０１を仮想ＣＰＵ１４３に割り当てるためのレジスタ情報等からなるデータＤ１を格納しておく第１のＣＰＵ用作業領域１０２ａ１１と、ＣＰＵ２０２を仮想ＣＰＵ１４４に割り当てるためのレジスタ情報等からなるデータＤ２を格納しておく第２のＣＰＵ用作業領域１０２ａ１２と、チックＣＰＵ１０５を後述の仮想チックＣＰＵ２４１または仮想チックＣＰＵ２４２に割り当てるためのレジスタ情報等からなるデータＤ１ａ，Ｄ２ａを格納しておく領域であるチックＣＰＵ用作業領域１０２ａ２と、データＤ１,Ｄ２,Ｄ１ａ，Ｄ２ａを一時的に退避させておくための第１の退避領域１０２ｂおよび第２の退避領域１０２ｃが設けられてなる。
【００８３】
つまり、データＤ１は、ＣＰＵ２０１を仮想ＣＰＵ１４３に割り当てて、仮想ＣＰＵ１４３により仮想計算機１１０のタイマ処理以外の計算処理を実行するために必要となり、データＤ２は、ＣＰＵ１０３を仮想ＣＰＵ１４４に割り当てて、仮想ＣＰＵ１４４により仮想計算機１１１のタイマ処理以外の計算処理を実行するために必要となる。また、データＤ１ａは、チックＣＰＵ１０５を仮想チックＣＰＵ２４１に割り当てて、仮想チックＣＰＵ２４１により仮想計算機１１０のタイマ処理を実行するために必要となり、データＤ２ａは、チックＣＰＵ１０５を仮想チックＣＰＵ２４２に割り当てて、仮想チックＣＰＵ２４２により仮想計算機１１１のタイマ処理を実行するために必要となる。
＜１−２＞ハイパーバイザ
ハイパーバイザ１１２は、図１３に示すように、仮想ＣＰＵ１４３，１４４、仮想チックＣＰＵ２４１，２４２、割込み処理部１４０、仮想計算機スケジューラ（ＶＭ（Ｖｔｒｔｕａｌ  Ｍａｃｈｉｎｅ）スケジューラ）１４１およびＣＰＵ管理部１４２を含んで構成される。なお、実施の形態１と同様の構成については、一部説明を省略する。なお、図１３は、ＣＰＵ２０１，２０２がメモリ１０２上のプログラムを実行することによりハイパーバイザ１１２が実現されている様子を概念的に示したものであり、ハイパーバイザ１１２が実際にメモリ１０２の一部を構成しているわけではない。
【００８４】
仮想ＣＰＵ１４３，１４４は、ＣＰＵ２０１，２０２により実現される。
【００８５】
仮想チックＣＰＵ２４１，２４２は、チックＣＰＵ１０５により実現される。また、各仮想チックＣＰＵ２４１，２４２には、それぞれに対応する仮想計算機１１０，１１１を管理するオペレーティングシステムＯＳ１，ＯＳ２が後述のＳＭＰ方式に対応であるか否かに関する情報（オペレーティングシステム情報）が付与されている。この仮想チックＣＰＵ２４１，２４２が、第３の仮想処理手段に対応する。
【００８６】
ここにおいて、仮想計算機１１０のタイマ処理以外の計算処理（第１の処理に対応する。）が、仮想ＣＰＵ１４３により実行され、仮想計算機１１０のタイマ処理（第２の処理に対応する。）が仮想チックＣＰＵ２４１により実行される。
【００８７】
また、仮想計算機１１１のタイマ処理以外の計算処理が、仮想ＣＰＵ１４４により実行され、仮想計算機１１１のタイマ処理が、仮想チックＣＰＵ２４２により実行される。
【００８８】
割込み処理部１４０は、割込みコントローラ１０６からＣＰＵ２０１，２０２またはチックＣＰＵ１０５に対して割込み要求が発行されると、割込み要求の種類および割込み対象となる仮想計算機１１０，１１１を特定し、ＶＭスケジューラに通知する。ここで、割込み処理部１４０は、割込みコントローラ１０６に保持されている割込み要求情報にアクセスして、割込み要求の種類および割込みの対象とを特定する。
【００８９】
ＶＭスケジューラ１４１は、仮想計算機１１０,１１１それぞれを実行する仮想ＣＰＵ１４３，１４４および仮想チックＣＰＵ２４１,２４２へのＣＰＵ２０１,２０２またはチックＣＰＵ１０５の割り当ての時間割スケジュールを管理している。また、ＶＭスケジューラ１４１は、割込み処理部１４０で特定された割込み要求の種類および割込みの対象となる仮想計算機１１０，１１１に基づいて、仮想ＣＰＵ１４３，１４４および仮想チックＣＰＵ２４１，２４２に割り当てるＣＰＵ（ＣＰＵ２０１，２０２かチックＣＰＵ１０５）を決定する。
【００９０】
ＶＭスケジューラ１４１は、通常、自らの保持する仮想ＣＰＵ１４３,１４４へのＣＰＵ２０１,２０２の割当てスケジュールに基づいて、仮想ＣＰＵ１４３による仮想計算機１１０の実行と仮想ＣＰＵ１４４による仮想計算機１１１の実行とを行う。本実施の形態では、ＶＭスケジューラ１４１が、ＣＰＵ２０１を仮想ＣＰＵ１４３に割当てて、ＣＰＵ２０２を仮想ＣＰＵ１４４に割り当てて、ＣＰＵ２０１,２０２の仮想ＣＰＵ１４３,１４４への割当ての変更は行わない。そして、割込みコントローラ１０６が割込み要求を発行した場合、ＶＭスケジューラ１４１は、チックＣＰＵ１０５の仮想ＣＰＵ２４１,２４２への割当てを決定する。
【００９１】
ＣＰＵ管理部１４２は、ＶＭスケジューラ１４１が定めた仮想ＣＰＵ１４３，１４４へのＣＰＵ２０１,２０２の割り当ての時間割スケジュール、または仮想チックＣＰＵ２４１,２４２へのチックＣＰＵ１０５の割り当ての時間割スケジュールに従って、ＣＰＵ２０１,２０２を仮想ＣＰＵ１４３,１４４に割り当てるとともに、チックＣＰＵ１０５を仮想チックＣＰＵ２４１,２４２に割り当てる。
【００９２】
また、ＣＰＵ管理部１４２は、仮想ＣＰＵ１４３,１４４および仮想チックＣＰＵ２４１,２４２それぞれが仮想計算機１１０,１１１の計算処理を実行する際に使用するデータの管理も行う。ＣＰＵ管理部１４２は、例えば、図１４（ａ）に示すように、ＣＰＵ２０１に対応する第１のＣＰＵ用作業領域１０２ａ１１にデータＤ１を格納し、ＣＰＵ２０２に対応する第２のＣＰＵ用作業領域１０２ａ１２にデータＤ２を格納する。
【００９３】
例えば、仮想ＣＰＵ１４３が仮想計算機１１０のタイマ処理以外の計算処理を実行し、仮想ＣＰＵ１４４が仮想計算機１１１のタイマ処理以外の計算処理を実行しているときに、ＣＰＵ管理部１４２が、仮想ＣＰＵ１４３に仮想計算機１１０のタイマ処理を実行させるとする。
【００９４】
そして、ＣＰＵ管理部１４２は、チックＣＰＵ１０５を仮想チックＣＰＵ２４１に割り当てる。ここでは、ＣＰＵ管理部１４２は、図１４（ａ）に示すように、データＤ１およびデータＤ２それぞれが第１のＣＰＵ作業領域１０２ａ１１および第２のＣＰＵ作業領域１０２ａ１２に格納された状態を維持しつつ、予め第１の退避領域１０２ｂに退避させておいたデータＤ１ａをチックＣＰＵ用作業領域１０２ａ２に読み込む。一方、ＣＰＵ管理部１４２がチックＣＰＵ１０５を仮想チックＣＰＵ２４２に割り当てる場合は、ＣＰＵ管理部１４２は、データＤ１およびデータＤ２それぞれが第１のＣＰＵ作業領域１０２ａ１１および第２のＣＰＵ作業領域１０２ａ１２に格納された状態を維持しつつ、予め第２の退避領域１０２ｃに退避させておいたデータＤ２ａをチックＣＰＵ用作業領域１０２ａ２に読み込む。
＜１−３＞仮想計算機
仮想計算機１１０、１１１は、それぞれオペレーティングシステムＯＳ１，ＯＳ２によって管理されている。図１３に示す例では、仮想計算機１１０では、オペレーティングシステムＯＳ１上でアプリケーションタスクＴ１１，Ｔ１２が実行され、仮想計算機１１１では，オペレーティングシステムＯＳ２上でアプリケーションタスクＴ２１，Ｔ２２が実行されている。なお、実施の形態１と同様の構成については説明を一部省略する。なお、図１３は、ＣＰＵ２０１，２０２およびチックＣＰＵ１０５がメモリ１０２上の適宜のプログラムを実行することにより仮想計算機１１０，１１１が実現されている様子を概念的に示したものであり、仮想計算機１１０，１１１が実際にメモリ１０２の一部を構成しているわけではない。
【００９５】
各オペレーティングシステムＯＳ１、ＯＳ２は、ＳＭＰ（Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉ  Ｐｒｏｃｅｓｓｉｎｇ：対称型マルチプロセッシング）方式に対応しており、実施の形態１と同様に、割込みコントローラ１０６から通知される割込み要求の種類と、各割込み要求に対応した割込みハンドラを特定するエントリーアドレスとから構成される割込みテーブルＴｂ１、Ｔｂ２を管理している。これにより、仮想ＣＰＵ１４３，１４４および仮想チックＣＰＵ２４１，２４２は、割込みテーブルＴｂ１，Ｔｂ２を参照して、当該割込み要求の種類からエントリーアドレスを特定し、当該エントリーアドレスに対応する割込みハンドラを実行する。
【００９６】
また、割込みテーブルＴｂ１，Ｔｂ２に登録されたエントリーアドレスには、実施の形態１と同様にチックハンドラを特定するものが含まれている。
【００９７】
割込みコントローラ１０６からチック割込みが発行されると、仮想チックＣＰＵ２４１，２４２は、割込みテーブルＴｂ１，Ｔｂ２を参照して、チックハンドラに対応するエントリーアドレスを特定する。そして、チックＣＰＵ１０５が割り当てられた仮想チックＣＰＵ２４１，２４２が、チックハンドラを実行してシステムタイマＳＴ１,ＳＴ２のカウント値を更新する処理（タイマ処理）を行う。
＜２＞動作
本実施の形態の計算機システムの動作のフローチャートを図１５に示す。
【００９８】
まず、割込みコントローラ１０６は、ハードウェアタイマ１０７から割込み要求信号が入力されると、当該割込み要求信号が、チック割込みを要求するものであるか否かを判断する（ステップＳ１０１）。ここでは、割込みコントローラ１０６は、割込み要求信号が第１の信号入力端子と第２の信号入力端子のいずれに入力されたかにより、割り込み要求信号の種類を判断する。例えば、割込み要求信号が第２の信号入力端子に入力されると、割込みコントローラ１０６は、チック割込みであると判断する。
【００９９】
ステップＳ１０１において、割込み要求信号がチック割込みを要求するものではないと判断すると（ステップＳ１０１：Ｎｏ）、割込みコントローラ１０６は、割込み信号線１０８を介してＣＰＵ２０１，２０２に対して割込み要求を発行する（ステップＳ１０２）。このとき、割込み処理部１４０が、割込み要求の種類および割込みの対象となる仮想ＣＰＵの特定を行い、割込み要求の種類および割込み対象をＶＭスケジューラ１４１に通知する（ステップＳ１０３）。以下、ステップＳ１０２からステップＳ１０８の処理は実施の形態１と同様なので説明を省略する。
【０１００】
一方、ステップＳ１０１において、割込み要求信号がタイマ割込みを要求するものと判断すると（ステップＳ１０１：Ｙｅｓ）、割込みコントローラ１０６は、割込み信号線１０８を介してチックＣＰＵ１０５に対してチック割込みを発行する（ステップＳ１１０）。このとき、チック割込みを受けたチックＣＰＵ１０５は、動作を開始する（ステップＳ１１１）。そして、割込み処理部１４０が、割込みコントローラ１０６に保持されている割込み要求情報にアクセスして、割込み要求の種類および割込みの対象となる仮想ＣＰＵの特定を行い、割込み要求の種類と割込み対象とをＶＭスケジューラ１４１に通知する（ステップＳ１１２）。ここでは、チックＣＰＵ１０５が、仮想計算機１１０のタイマ処理を仮想チックＣＰＵ２４１により実行するためのチック割込みを受け付けたとする。この場合、割込み処理部１４０が、割込み要求の種類がチック割込みであることと、割込みの対象が仮想計算機１１０であることをＶＭスケジューラ１４１に通知する。
【０１０１】
また、割込み管理部１４０は、チック割込みの対象となる仮想チックＣＰＵ２４１に付与されたオペレーティングシステム情報に基づいて、仮想チックＣＰＵに対応する仮想計算機１１０がＳＭＰ方式に対応したオペレーティングシステムＯＳ１で管理されるものか否かを判別する（ステップＳ２０１）。
【０１０２】
ステップＳ２０１において、割込み管理部１４０が、仮想ＣＰＵ１４３に対応する仮想計算機１１０がＳＭＰ対応のオペレーティングシステムで管理されてないと判別すると（ステップＳ２０１：Ｎｏ）、実施の形態１で説明したステップＳ１１３以降の処理を行う。
【０１０３】
一方、ステップＳ２０１において、割込み管理部１４０が、チック割込みの対象となる仮想計算機１１０がＳＭＰ対応のオペレーティングシステムで管理されていると判別すると（ステップＳ２０１：Ｙｅｓ）、割込み処理部１４０が、チックＣＰＵ１０５を仮想チックＣＰＵ２４１に割り当てる（ステップＳ２０２）。このとき、ＣＰＵ管理部１４２は、図１４（ａ）に示すように、メモリ１０２上の第１のＣＰＵ用作業領域１０２ａ１１に格納されているデータＤ１および第２のＣＰＵ用作業領域１０２ａ１２に格納されているデータＤ２をそのままにして、予め第１の退避領域１０２ｂに退避させておいたデータＤ１ａをチックＣＰＵ用作業領域１０２ａ２に読み込む。そして、割込み管理部１４０は、仮想チックＣＰＵ２４１に対して、割込みコントローラ１０６がチック割込みを発行した旨を通知する（図１６（ａ））（ステップＳ２０３）。そして、チック割込みの通知を受けた仮想チックＣＰＵ２４１は、割込みテーブルＴｂ１に登録されたエントリーアドレスに従って、チックハンドラを実行し、システムタイマＳＴ１を更新する（図１６（ｂ））（ステップＳ２０４）。そして、チックハンドラの実行が終了すると、チックＣＰＵ１０５は、停止する（図１６（ｃ））（ステップＳ１２１）。
【０１０４】
結局、本実施の形態によれば、メモリ１０２上にＣＰＵ用作業領域１０２ａ１１，１０２ａ１２とは別にチックＣＰＵ用作業領域１０２ａ２が設けられていることにより、チックＣＰＵ１０５を仮想チックＣＰＵ２４１,２４２に割り当ててタイマ処理を行うときに、ＣＰＵ用作業領域１０２ａ１１，１０２ａ１２それぞれに格納されたデータＤ１，Ｄ２を退避させる必要がないので、データの退避に起因したオーバーヘッドを低減することができるから、計算機システムの処理効率の低下を抑制することができる。更に、本実施の形態によれば、例えば、仮想ＣＰＵ１４３で仮想計算機１１０のタイマ処理以外の計算処理を行いながら、並行して仮想チックＣＰＵ２４１で仮想計算機１１０のタイマ処理を行うことができるので、計算機システムの処理効率の向上を図ることができる。また、チックＣＰＵ１０５が割り当てられた仮想チックＣＰＵ２４１，２４２が、割込みコントローラ１０６から発行されるチック割込みにリアルタイムで追従して、タイマ処理を実行するので、各仮想計算機１１０，１１１におけるタイマ処理のリアルタイム性を維持することができる。
＜３＞変形例
（１）前述の実施の形態１および２では、メモリ１０２、ＣＰＵ１０３，２０１，２０２、キャッシュメモリ１０４、チックＣＰＵ１０５、割込みコントローラ１０６およびハードウェアタイマ１０７が各別の装置で構成される例について説明したが、これに限定されるものではなく、例えば、全ての装置を１つのシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）で構成してもよいし、或いは、メモリ１０２およびハードウェアタイマ１０７を除く各装置を１つのシステムＬＳＩで構成してもよい。
（２）前述の実施の形態１および２では、２つの仮想計算機を実現してなる例について説明したが、これに限定されるものではなく、例えば、３つ以上の仮想計算機を実現してなるものであってもよいし、或いは、１つの仮想計算機を実現してなるものであってもよい。
（３）前述の実施の形態１および２では、各仮想計算機１１０，１１１が２つのタスクを並列に実行する例について説明したが、これに限定されるものではなく、１つのタスクを実行するものであってもよいし、或いは、３個以上のタスクを並列に実行するものであってもよい。
（４）前述の実施の形態１および２では、ハードウェアタイマ１０７と、ハードウェアタイマ１０７が発行する割込み要求信号に基づいてチックハンドラのみを実行するチックＣＰＵ１０５とを備える例に説明したが、これに限定されるものではなく、例えば、垂直同期割込み要求信号に基づいて垂直同期割込み処理を行うＶＤＰ（Ｖｉｄｅｏ  Ｄｉｓｐｌａｙ  Ｐｒｏｃｅｓｓｏｒ）を備える構成や、一定の周期で発行される割込み要求信号に基づいてデータ転送を行うデータ転送専用のプロセッサとを備える構成でもよい。
【０１０５】
本変形例の構成でも、専用プロセッサが、割込み処理を実行するので、仮想計算機１１０，１１１で実行される計算処理の切替に伴うオーバーヘッドを削減することができる。
（５）前述の実施の形態１および２では、ハイパーバイザ１１２が実現されており、ハイパーバイザ１１２が仮想計算機１１０，１１１それぞれのＯＳを管理する例について説明したが、これに限定されるものではなく、例えば、仮想計算機１１０がホストＯＳにより管理され、仮想計算機１１１を管理するゲストＯＳが、仮想計算機１１０を管理するホストＯＳにより管理されるものであってもよい。この場合、ハイパーバイザ１１２の機能は、ホストＯＳが実現することになる。
（６）前述の実施の形態１および２では、各仮想チックＣＰＵ２４１，２４２に、オペレーティングシステム情報が付与されている例について説明したが、これに限定されるものではなく、例えば、ＣＰＵ管理部１４１がオペレーティングシステム情報を保持するようにしてもよい。
（７）前述の実施の形態１および２では、チックＣＰＵ１０５として、ＣＰＵ１０３を構成する汎用のプロセッサよりも小規模で低消費電力な専用プロセッサを使用する例について説明したが、これに限定されるものではなく、チックＣＰＵ１０５を汎用のプロセッサで構成してもよい。
（８）前述の実施の形態２では、２つのＣＰＵ２０１，２０２が、動作クロック周波数や消費電力が同一で演算性能も同一であって同一の命令セットアーキテクチャを有するプロセッサにより構成される例について説明したが、これに限定されるものではなく、ＣＰＵ２０１，２０２は、同一の命令セットアーキテクチャを有するのであれば、例えば、動作クロック周波数や消費電力が異なるプロセッサや演算性能が異なるプロセッサにより構成してもよい。
（９）前述の実施の形態２では、２つのＣＰＵ２０１，２０２を備える例について説明したが、これに限定されるものではなく、例えば、３つ以上のＣＰＵ（図示せず）を備えるものであってもよい。
（１０）前述の実施の形態２では、全ての仮想計算機１１０，１１１がＳＭＰに対応できるオペレーティングシステムで管理されている例について説明したが、これに限定されるものではなく、例えば、いずれか一方の仮想計算機のみがＳＭＰに対応できるオペレーティングシステムで管理されるものであってもよい。
（１１）前述の実施の形態１および２では、チックＣＰＵ１０５の入出力ピンにキャッシュメモリ１０４が接続されてなる構成をしているが、これに限定されるものではなく、例えば、チックＣＰＵ１０５の入出力ピンが直接バス１０１に接続されてなる構成であってもよいし、チックＣＰＵ１０５の一部の入出力ピンのみがキャッシュメモリ１０４に接続され他の入出力ピンは直接バス１０１に接続されてなる構成であってもよい。
【０１０６】
本変形例によれば、キャッシュメモリ１０４で消費される電力を低減することができるので、計算機システム全体の消費電力を削減することができる。
（１２）前述の実施の形態１および２では、仮想計算機１１０，１１１のシステムタイマのカウント値を更新する処理を行う例について説明したが、これに限定されるものではなく、その他、実行を遅延させると何らかの副作用が生じる割込み処理についても適用できる。また、仮想ＣＰＵの切り替え周期に比べて、短周期で発行される割込み要求に基づく処理であって、当該割込み要求のリアルタイム性を充足させるためには、仮想ＣＰＵの切り替えに伴うオーバヘッドが不可避となる処理についても適用できる。
＜４＞その他
なお、本発明の各機能ブロックは典型的にはソフトウェアとして実現されるが、集積回路であるＬＳＩとして実現しても良い。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  ＰｒｏｇｒａｍｍａｂｌｅＧａｔｅ  Ａｒｒａｙ）、ＬＳＩ内部の回路セルの接続または設定を再構成可能なリコンフィギュラブル・プロセッサーを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【産業上の利用可能性】
【０１０７】
本発明では、複数の仮想計算機を実現する計算機システムやマルチオペレーティングシステムにおいて、システムタイマのカウント値の更新する処理（タイマ処理）におけるオーバーヘッドを低減することができる。また、システムタイマのカウント値の更新処理を、汎用のプロセッサに比べて電力消費の少ない更新処理専用のプロセッサで行う構成とすることにより、システム全体の消費電力を低減することができる。つまり、少ない物理資源で複数の仮想計算機を実現する計算機システムや複数のオペレーティングシステムを実行するマルチオペレーティングシステムのタイマ処理の方法として有用である。
【符号の説明】
【０１０８】
１０１  バス
１０２  メモリ
１０３，２０１，２０２  ＣＰＵ（第１の処理装置）
１０４  キャッシュメモリ
１０５  チックＣＰＵ（第２の処理装置）
１０６  割込みコントローラ
１０７  ハードウェアタイマ
１１０，１１１  仮想計算機
１１２  ハイパーバイザ
１４０  割込み処理部
１４１  ＶＭスケジューラ
１４２  ＣＰＵ管理部（処理装置管理部）
１４３，１４４  仮想ＣＰＵ
２４１，２４２  仮想チックＣＰＵ
ＯＳ１，ＯＳ２  オペレーティングシステム
Ｔ１１，Ｔ１２，Ｔ２１，Ｔ２２  タスク
Ｔｂ１，Ｔｂ２  割込みテーブル
ＳＴ１，ＳＴ２  システムタイマ
【図１】
2011161893.tif 000003
【図２】
2011161893.tif 000004
【図３】
2011161893.tif 000005
【図４】
2011161893.tif 000006
【図５】
2011161893.tif 000007
【図６】
2011161893.tif 000008
【図７】
2011161893.tif 000009
【図８】
2011161893.tif 000010
【図９】
2011161893.tif 000011
【図１０】
2011161893.tif 000012
【図１１】
2011161893.tif 000013
【図１２】
2011161893.tif 000014
【図１３】
2011161893.tif 000015
【図１４】
2011161893.tif 000016
【図１５】
2011161893.tif 000017
【図１６】
2011161893.tif 000018
【図１７】
2011161893.tif 000019
【図１８】
2011161893.tif 000020
【図１９】
2011161893.tif 000021
【国際調査報告】
2011161893.tif 000022
2011161893.tif 000023
2011161893.tif 000024
2011161893.tif 000025