(57)【要約】  ハイパーバイザ（１０１）は、いずれかのオペレーティングシステムに異常が発生した場合、異常が発生したオペレーティングシステムの再起動を、異常が発生したオペレーティングシステムを実行していたコア（１１１）に実行させる。ハイパーバイザは、再起動の実行中に情報処理装置（１００）の状態を監視する。再起動の実行中に情報処理装置の状態が再起動の実行を制限する制限条件を満たした場合、ハイパーバイザは、再起動の実行を制限する制限制御を行う。
2017195276.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサコアを有するマルチコアプロセッサを備えて前記複数のプロセッサコアによって複数のオペレーティングシステムを動作させる情報処理装置であって、
前記複数のオペレーティングシステムに含まれるオペレーティングシステムに異常が発生した場合、異常が発生したオペレーティングシステムの再起動を前記複数のプロセッサコアに含まれるプロセッサコアに実行させる再起動部と、
前記再起動の実行中に前記情報処理装置の状態を監視する状態監視部と、
前記再起動の実行中に前記情報処理装置の状態が前記再起動の実行を制限する制限条件を満たした場合、前記再起動の実行を制限する制限制御を行う再起動制御部と
を備える情報処理装置。
【請求項２】
前記情報処理装置は、前記複数のプロセッサコアからアクセスされるメモリを備え、
前記制限条件は、前記再起動での前記メモリへの単位時間当たりのアクセス数である対象アクセス量が基準値を超えるという条件であり、
前記状態監視部は、前記情報処理装置の状態として、前記対象アクセス量を監視し、
前記再起動制御部は、前記対象アクセス量が前記基準値を超えた場合、前記制限制御として、前記再起動を実行するプロセッサコアである対象コアの動作周波数を、前記対象アクセス量が前記基準値を超える前の前記対象コアの動作周波数よりも低くする
請求項１に記載の情報処理装置。
【請求項３】
前記再起動制御部は、前記対象コアの動作周波数を前記対象アクセス量が前記基準値を超える前の前記対象コアの動作周波数である通常周波数よりも低くした後に前記再起動が終了した場合、前記対象コアの動作周波数を前記通常周波数に戻す
請求項２に記載の情報処理装置。
【請求項４】
前記再起動制御部は、前記対象アクセス量が前記基準値である第１基準値よりも大きい第２基準値を超えた場合、前記再起動を休止させる
請求項２に記載の情報処理装置。
【請求項５】
前記情報処理装置は、前記複数のプロセッサコアからアクセスされるメモリを備え、
前記制限条件は、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスのアクセス量である対象アクセス量が基準値を超えるという条件であり、
前記状態監視部は、前記情報処理装置の状態として、前記対象アクセス量を監視し、
前記再起動制御部は、前記対象アクセス量が前記基準値を超えた場合、前記制限制御として、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスの命令を、プログラム制御方式の命令に変換する
請求項１に記載の情報処理装置。
【請求項６】
前記再起動制御部は、前記対象アクセス量が前記基準値を超えた場合、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスのうちの一部のダイレクトメモリアクセスの命令を、プログラム制御方式の命令に変換する
請求項５に記載の情報処理装置。
【請求項７】
前記再起動制御部は、前記対象アクセス量が前記基準値である第１基準値よりも大きい第２基準値を超えた場合、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスの全ての命令を、プログラム制御方式の命令に変換する
請求項６に記載の情報処理装置。
【請求項８】
前記情報処理装置は、前記複数のプロセッサコアからアクセスされるキャッシュを備え、
前記制限条件は、前記再起動の対象でないオペレーティングシステムからの前記キャッシュへのアクセスで発生するキャッシュミスのミス率である対象ミス率が基準値を超えるという条件であり、
前記状態監視部は、前記情報処理装置の状態として、前記対象ミス率を監視し、
前記再起動制御部は、前記対象ミス率が前記基準値を超えた場合、前記制限制御として、再起動中のオペレーティングシステムからの前記キャッシュへのアクセスを禁止する
請求項１に記載の情報処理装置。
【請求項９】
前記再起動制御部は、再起動中のオペレーティングシステムからの前記キャッシュへのアクセスを禁止した後に前記再起動が終了した場合、再起動後のオペレーティングシステムからの前記キャッシュへのアクセスを許可する
請求項８に記載の情報処理装置。
【請求項１０】
複数のプロセッサコアを有するマルチコアプロセッサを備えて前記複数のプロセッサコアによって複数のオペレーティングシステムを動作させる情報処理装置による再起動制御方法であって、
再起動部が、前記複数のオペレーティングシステムに含まれるオペレーティングシステムに異常が発生した場合、異常が発生したオペレーティングシステムの再起動を前記複数のプロセッサコアに含まれるプロセッサコアに実行させ、
状態監視部が、前記再起動の実行中に前記情報処理装置の状態を監視し、
再起動制御部が、前記再起動の実行中に前記情報処理装置の状態が前記再起動の実行を制限する制限条件を満たした場合、前記再起動の実行を制限する制限制御を行う再起動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のオペレーティングシステムを動作させる情報処理装置においてオペレーティングシステムを再起動する際の制御に関するものである。
【背景技術】
【０００２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の高性能化に伴う仮想化技術の発展により、一台の情報処理システムに複数のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を搭載することが可能である。複数のＯＳを制御するソフトウェアはハイパーバイザと呼ばれ、ハイパーバイザによって制御されるＯＳはゲストＯＳと呼ばれる。
仮想化技術は、ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）をはじめ様々な分野で用いられている。
具体的には、仮想化技術は、リアルタイム性が高い処理を行うためのリアルタイムＯＳと、Ｗｉｎｄｏｗｓ（登録商標）のような汎用ＯＳと、を単一のハードウェアプラットフォームで同時に実行する環境で用いられる。【０００３】
特許文献１には、ゲストＯＳに異常が発生した場合に異常時における処理を行うための技術が開示されている。
この技術では、マスタＯＳがＷＤＣ（ウォッチドッグカウンタ）を用いて各ゲストＯＳの動作状況を判定する。ゲストＯＳが異常状態であると判定された場合には、異常状態のゲストＯＳが再起動される。【０００４】
しかし、異常状態のゲストＯＳが再起動されるときにはハイパーバイザによって再起動処理が行われるため、稼働中のリアルタイムＯＳに対してオーバーヘッドが発生してしまう。その結果、稼働中のリアルタイムＯＳの性能が低下してしまう。
そこで、ハイパーバイザによる再起動処理が行われるときには、稼働中のリアルタイムＯＳの性能低下を抑えるため、稼働中のリアルタイムＯＳに対するオーバーヘッドを軽減することが求められる。【０００５】
再起動処理では、入出力の初期化等が行われるため、バスへのアクセスが多発する可能性がある。バスへのアクセスの多発は、稼働中のリアルタイムＯＳに対するオーバーヘッドの要因となる。
具体的には、稼働中のリアルタイムＯＳがバスにアクセスするときに再起動処理でバスへのアクセスが多発している場合、稼働中のリアルタイムＯＳは、バスの開放を待たなければならない。その結果、リアルタイム性が阻害されてしまう。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１１６６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、オペレーティングシステムの再起動中に稼働中のオペレーティングシステムの性能の低下を抑えることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、複数のプロセッサコアを有するマルチコアプロセッサを備えて前記複数のプロセッサコアによって複数のオペレーティングシステムを動作させる。
前記情報処理装置は、
前記複数のオペレーティングシステムに含まれるオペレーティングシステムに異常が発生した場合、異常が発生したオペレーティングシステムの再起動を前記複数のプロセッサコアに含まれるプロセッサコアに実行させる再起動部と、
前記再起動の実行中に前記情報処理装置の状態を監視する状態監視部と、
前記再起動の実行中に前記情報処理装置の状態が前記再起動の実行を制限する制限条件を満たした場合、前記再起動の実行を制限する制限制御を行う再起動制御部とを備える。
【発明の効果】
【０００９】
本発明によれば、オペレーティングシステムの再起動中に稼働中のオペレーティングシステムの性能の低下を抑えることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１における情報処理装置１００の構成図。
【図２】実施の形態１におけるプロセッサ１１０の構成図。
【図３】実施の形態１におけるハイパーバイザ部１４０の構成図。
【図４】実施の形態１における再起動制御方法のフローチャート。
【図５】実施の形態２における再起動制御部１４４の構成図。
【図６】実施の形態２における再起動制御方法のフローチャート。
【図７】実施の形態２における再起動制御方法の別のフローチャート。
【図８】実施の形態３における情報処理装置１００の構成図。
【図９】実施の形態３における再起動制御部１４４の構成図。
【図１０】実施の形態３における再起動制御方法のフローチャート。
【図１１】実施の形態３における再起動制御方法の別のフローチャート。
【図１２】実施の形態４における情報処理装置１００の構成図。
【図１３】実施の形態４における再起動制御部１４４の構成図。
【図１４】実施の形態４における再起動制御方法のフローチャート。
【発明を実施するための形態】
【００１１】
実施の形態および図面において、同じ要素または互いに相当する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略する。
【００１２】
実施の形態１．
複数のオペレーティングシステムを動作させる情報処理装置１００について、図１から図４に基づいて説明する。
【００１３】
＊＊＊構成の説明＊＊＊
図１に基づいて、情報処理装置１００のハードウェア構成およびソフトウェア構成を説明する。
情報処理装置１００は、プロセッサ１１０と、メモリ１２１と、ＷＤＴ１２２と、Ｉ／Ｏデバイス１２３と、キャッシュ１２９といったハードウェアを備える。
プロセッサ１１０は、バス１２０を介して、メモリ１２１と、ＷＤＴ１２２と、Ｉ／Ｏデバイス１２３と、キャッシュ１２９とに接続されている。
【００１４】
プロセッサ１１０は、複数のプロセッサコアを備えるマルチコアプロセッサである。具体的には、プロセッサ１１０は、マルチコアＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
プロセッサ１１０は、複数のプロセッサコアとして、コア１１１Ａとコア１１１Ｂとを備える。
コア１１１Ａは、ハイパーバイザ１０１と、リアルタイムＯＳ１０２と、リアルタイムアプリケーション１０３とを実行するプロセッサコアである。ハイパーバイザ１０１とリアルタイムＯＳ１０２とリアルタイムアプリケーション１０３とについては後述する。
コア１１１Ｂは、汎用ＯＳ１０４と汎用アプリケーション１０５とを実行するプロセッサコアである。汎用ＯＳ１０４と汎用アプリケーション１０５とについては後述する。
コア１１１Ａとコア１１１Ｂとを総称してコア１１１という。
【００１５】
さらに、プロセッサ１１０は、周波数変更機構１１２と、クロックジェネレータ１１３と、割り込みコントローラ１１４といったハードウェアを備える。
周波数変更機構１１２は、クロックジェネレータ１１３を制御することによって、コア１１１の動作周波数を変更する。
クロックジェネレータ１１３は、動作周波数に対応するクロック信号を生成する。
割り込みコントローラ１１４は、Ｉ／Ｏデバイス１２３からの割り込みを検出して割り込み信号を発生する。
【００１６】
メモリ１２１は記憶装置である。メモリ１２１は、主記憶装置またはメインメモリともいう。具体的には、メモリ１２１はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００１７】
ＷＤＴ１２２は、オペレーティングシステムの異常を検出するために用いられるウォッチドッグタイマである。
【００１８】
Ｉ／Ｏデバイス１２３は、入出力デバイスである。Ｉ／Ｏは入出力の略称である。
【００１９】
キャッシュ１２９は、メモリ１２１にアクセスするよりも高速にアクセスすることが可能な記憶装置である。
【００２０】
メモリ１２１とＷＤＴ１２２とＩ／Ｏデバイス１２３とキャッシュ１２９といったハードウェアは、複数のコア１１１からアクセスされる。
【００２１】
情報処理装置１００は、ハイパーバイザ１０１と、リアルタイムＯＳ１０２と、リアルタイムアプリケーション１０３と、汎用ＯＳ１０４と、汎用アプリケーション１０５といったソフトウェアを実行する。
【００２２】
ハイパーバイザ１０１は、複数のオペレーティングシステムを同時に実行するためのソフトウェアである。
具体的には、複数のオペレーティングシステムは、リアルタイムＯＳ１０２および汎用ＯＳ１０４である。ＯＳはオペレーティングシステムの略称である。
【００２３】
リアルタイムＯＳ１０２は、リアルタイムアプリケーション１０３を実行するためのオペレーティングシステムである。
リアルタイムアプリケーション１０３は、リアルタイム処理用のアプリケーションプログラムである。リアルタイム処理はリアルタイム性が高い処理である。
【００２４】
汎用ＯＳ１０４は、汎用アプリケーション１０５を実行するためのオペレーティングシステムである。
汎用アプリケーション１０５は、汎用処理用のアプリケーションプログラムである。汎用処理はリアルタイム処理以外の処理である。
【００２５】
図２に基づいて、プロセッサ１１０のコア１１１の機能構成を説明する。
コア１１１Ａは、ＯＳ部１３１Ａと、アプリケーション部１３２Ａと、ハイパーバイザ部１４０といった機能構成の要素を備える。
ＯＳ部１３１Ａは、リアルタイムＯＳ１０２を実行することによって、リアルタイムＯＳ１０２を動作させる。
アプリケーション部１３２Ａは、リアルタイムアプリケーション１０３を実行する。
ハイパーバイザ部１４０は、ハイパーバイザ１０１を実行する。
【００２６】
コア１１１Ｂは、ＯＳ部１３１Ｂと、アプリケーション部１３２Ｂといった機能構成の要素を備える。
ＯＳ部１３１Ｂは、汎用ＯＳ１０４を実行することによって、汎用ＯＳ１０４を動作させる。
アプリケーション部１３２Ｂは、汎用アプリケーション１０５を実行する。
【００２７】
図３に基づいて、ハイパーバイザ部１４０の機能構成を説明する。
ハイパーバイザ部１４０は、異常検出部１４１と、再起動部１４２と、状態監視部１４３と、再起動制御部１４４とを備える。これらの機能については後述する。
【００２８】
＊＊＊動作の説明＊＊＊
再起動制御方法について説明する。
再起動制御方法は、いずれかのＯＳ（オペレーティングシステム）の再起動中に稼働中のＯＳの動作に対する再起動の影響を抑えるための方法である。
再起動制御方法の手順は再起動制御プログラムの手順に相当する。
【００２９】
図４に基づいて、再起動制御方法を説明する。
ステップＳ１１０は異常検出処理である。
ステップＳ１１０において、複数のＯＳが稼働中である。具体的には、コア１１１ＡのＯＳ部１３１ＡがリアルタイムＯＳ１０２を動作させており、コア１１１ＢのＯＳ部１３１Ｂが汎用ＯＳ１０４を動作させている。
異常検出部１４１は、ＷＤＴ１２２（ウォッチドッグタイマ）を用いて、稼働中のＯＳの動作を監視する。
そして、稼働中のＯＳに異常が発生した場合、異常検出部１４１は、稼働中のＯＳに発生した異常を検出する。
稼働中のＯＳに発生した異常が検出された場合、つまり、稼働中のＯＳに異常が発生した場合、処理はステップＳ１２０に進む。
【００３０】
ステップＳ１２０以降の説明において、ステップＳ１１０で異常が発生したＯＳを対象ＯＳという。
【００３１】
ステップＳ１２０は再起動処理である。
ステップＳ１２０において、再起動部１４２は、対象ＯＳの再起動をコア１１１に実行させる。再起動部１４２は、コア１１１Ａに備わるハイパーバイザ部１４０の機能の１つである。
対象ＯＳがリアルタイムＯＳ１０２である場合、コア１１１ＡがリアルタイムＯＳ１０２の再起動を開始する。
対象ＯＳが汎用ＯＳ１０４である場合、再起動部１４２がコア１１１Ｂに汎用ＯＳ１０４の再起動を命令し、コア１１１Ｂが汎用ＯＳ１０４の再起動を開始する。
【００３２】
ステップＳ１３０は状態監視処理である。
ステップＳ１３０において、状態監視部１４３は状態監視を行う。
状態監視は、再起動の実行中に情報処理装置１００の状態を監視する動作である。
具体的な状態監視については、実施の形態２以降で説明する。
【００３３】
ステップＳ１４１からステップＳ１４３は再起動制御処理である。
ステップＳ１４１において、再起動制御部１４４は、再起動の実行中に情報処理装置１００の状態が制限条件を満たしたか判定する。
制限条件は、再起動の実行を制限する条件である。
具体的な制限条件については、実施の形態２以降で説明する。
情報処理装置１００の状態が制限条件を満たした場合、処理はステップＳ１４２に進む。
【００３４】
ステップＳ１４２において、再起動制御部１４４は制限制御を行う。
制限制御は、再起動の実行を制限する制御である。
具体的な制限制御については、実施の形態２以降で説明する。
【００３５】
ステップＳ１４３において、再起動制御部１４４は、再起動が終了したか判定する。
具体的には、再起動制御部１４４は、再起動のプロセスの状態を参照することによって、再起動が終了したか判定する。
再起動が終了した場合、処理は終了する。
再起動が終了していない場合、処理はステップＳ１３０に戻る。
【００３６】
＊＊＊実施の形態１の効果＊＊＊
ＯＳの再起動中に、再起動の実行を制限することにより、稼働中のＯＳの性能の低下を抑えることが可能となる。
【００３７】
＊＊＊他の構成＊＊＊
ＯＳの数は、３つ以上であってもよい。
それぞれのＯＳは、リアルタイムＯＳ１０２と汎用ＯＳ１０４とのいずれであってもよいし、その他の種類のＯＳであってもよい。
【００３８】
コア１１１の数は、３つ以上であってもよい。
コア１１１Ｂが、ハイパーバイザ部１４０を備えてもよい。つまり、ハイパーバイザ１０１は、コア１１１Ｂによって実行されてもよい。
情報処理装置１００は、ＯＳを実行するコア１１１とは別に、ハイパーバイザ１０１を実行するコアを備えてもよい。つまり、ハイパーバイザ部１４０は、ＯＳを実行するコア１１１とは別のコアに備わってもよい。
【００３９】
実施の形態２．
再起動でのメモリ１２１への単位時間当たりのアクセス数を状態監視の対象とする形態について、主に実施の形態１と異なる点を、図５から図７に基づいて説明する。
【００４０】
＊＊＊構成の説明＊＊＊
情報処理装置１００のハードウェア構成およびソフトウェア構成は、実施の形態１の図１と同じである。
コア１１１の機能構成は、実施の形態１の図２と同じである。
ハイパーバイザ部１４０の機能構成は、実施の形態１の図３と同じである。
【００４１】
図５に基づいて、再起動制御部１４４の機能構成を説明する。
再起動制御部１４４は、アクセス量判定部１５１と、周波数決定部１５２と、周波数変更部１５３とを備える。これらの機能については後述する。
【００４２】
＊＊＊動作の説明＊＊＊
実施の形態２における状態監視、制限条件および制限制御は、以下の通りである。
状態監視で監視される情報処理装置１００の状態は、対象アクセス量である。
対象アクセス量は、再起動でのメモリ１２１への単位時間当たりのアクセス数である。つまり、対象アクセス量は、再起動で単位時間当たりにメモリ１２１に発生したアクセスの回数である。
【００４３】
制限条件は、対象アクセス量が基準値を超えるという条件である。基準値は予め決められた値である。
制限制御は、対象コアの動作周波数を、対象アクセス量が基準値を超える前の対象コアの動作周波数よりも低くする制御である。対象コアは、再起動を実行するコア１１１である。
【００４４】
図６に基づいて、再起動制御方法を説明する。
ステップＳ２１０およびステップＳ２２０は、実施の形態１における図４のステップＳ１１０およびステップＳ１２０と同じである。
つまり、Ｓ２１０で稼働中のＯＳに異常が発生した場合、異常が発生したＯＳの再起動がステップＳ２２０で開始される。
【００４５】
ステップＳ２３０は、実施の形態１における図４のステップＳ１４３に相当する。
ステップＳ２３０において、再起動制御部１４４は、再起動が終了したか判定する。判定方法は、実施の形態１における図４のステップＳ１４３と同じである。
再起動が終了した場合、処理はステップＳ２６０に進む。
再起動が終了していない場合、処理はステップＳ２４０に進む。
【００４６】
ステップＳ２４０は、実施の形態１における図４のステップＳ１３０に相当する。
ステップＳ２４０において、状態監視部１４３は対象アクセス量を監視する。
具体的には、状態監視部１４３は、対象コアのパフォーマンスモニタとして機能し、再起動のプロセスによるメモリ１２１への単位時間当たりのアクセス数を取得する。取得されるアクセス数が対象アクセス量である。
【００４７】
ステップＳ２５１は、実施の形態１における図４のステップＳ１４１に相当する。
ステップＳ２５１において、アクセス量判定部１５１は、対象アクセス量を基準値と比較する。
対象アクセス量が基準値を超えている場合、処理はステップＳ２５２に進む。
対象アクセス量が基準値を超えていない場合、処理はステップＳ２３０に戻る。
【００４８】
ステップＳ２５２において、アクセス量判定部１５１は、対象アクセス量が基準値を超えた１回目であるか判定する。
具体的には、回数フラグがメモリ１２１に記憶される。アクセス量判定部１５１は、ステップＳ２２０の後、ステップＳ２３０の前に、回数フラグに０を設定する。そして、アクセス量判定部１５１は、ステップＳ２５２で回数フラグの値が０であるか判定する。回数フラグの値０は、対象アクセス量が基準値を超えた１回目を意味する。
対象アクセス量が基準値を超えた１回目である場合、処理はステップＳ２５３に進む。
対象アクセス量が基準値を超えた１回目でない場合、処理はステップＳ２５４に進む。
【００４９】
ステップＳ２５３において、周波数変更部１５３は、対象コアの動作周波数を記憶する。
具体的には、周波数変更部１５３は、対象コアの動作周波数を対象コアから取得し、取得された動作周波数をメモリ１２１に記憶する。
【００５０】
ステップＳ２５３で記憶された動作周波数を通常周波数という。
通常周波数は、対象アクセス量が基準値を超える前の対象コアの動作周波数に相当する。
【００５１】
ステップＳ２５４は、実施の形態１における図４のステップＳ１４２に相当する。
ステップＳ２５４において、周波数変更部１５３は、対象コアの動作周波数を通常周波数よりも低くする。
具体的には、低周波数がメモリ１２１に記憶されている。低周波数は、予め決められた周波数であり、通常周波数よりも低い周波数である。周波数決定部１５２は、低周波数をメモリ１２１から取得する。そして、周波数変更部１５３は、周波数変更機構１１２とクロックジェネレータ１１３とを用いて、対象コアの動作周波数を低周波数に変更する。
【００５２】
また、周波数変更部１５３は、ステップＳ２５２で説明した回数フラグに１を設定する。回数フラグの値１は、対象アクセス量が基準値を超えた２回目以降を意味する。
ステップＳ２５４の後、処理はステップＳ２３０に戻る。
【００５３】
ステップＳ２６０において、周波数変更部１５３は、対象コアの動作周波数を通常周波数に戻す。但し、対象コアの動作周波数が通常周波数から変更されていない場合、対象コアの動作周波数を通常周波数に戻す必要はない。
具体的には、周波数決定部１５２は、回数フラグを参照する。回数フラグの値が０である場合、対象コアの動作周波数を通常周波数に戻す必要はない。回数フラグの値１である場合、周波数決定部１５２は、ステップＳ２５３で記憶された通常周波数をメモリ１２１から取得する。そして、周波数変更部１５３は、周波数変更機構１１２とクロックジェネレータ１１３とを用いて、対象コアの動作周波数を通常周波数に変更する。
【００５４】
＊＊＊実施の形態２の効果＊＊＊
再起動を行うコア１１１の動作周波数を低くすることにより、再起動でのメモリ１２１への単位時間当たりのアクセス数を減らすことが可能になる。
その結果、再起動におけるバス１２０の占有率が低くなり、バス１２０を介してハードウェアにアクセスする際の稼働中のＯＳの待ち時間が少なくなる。
したがって、稼働中のＯＳの性能の低下を抑えることが可能となる。
【００５５】
＊＊＊他の構成＊＊＊
図６のステップＳ２５４で、周波数変更部１５３は、対象コアの動作周波数を、対象コアの動作周波数に対応する低周波数に変更してもよい。
その場合、周波数決定部１５２は、周波数テーブルを用いて、低周波数を決定する。
周波数テーブルは、周波数範囲と低周波数とが互いに関連付けられたテーブルである。周波数テーブルはメモリ１２１に記憶される。
具体的には、周波数決定部１５２は、対象コアの動作周波数を含んだ周波数範囲を周波数テーブルから選択し、選択された周波数範囲に関連付けられた低周波数を周波数テーブルから取得する。
【００５６】
対象アクセス量が多い場合、再起動制御部１４４は、再起動を休止させてもよい。
図７に基づいて、対象アクセス量が基準値を超えている場合に再起動を休止させる再制御方法を説明する。
【００５７】
ステップＳ２１０からステップＳ２４０およびステップＳ２６０は、図６で説明した通りである。
ステップＳ２７１において、アクセス量判定部１５１は、対象アクセス量を第１基準値と比較する。
対象アクセス量が第１基準値を超えている場合、処理はステップＳ２７２に進む。
対象アクセス量が第１基準値を超えていない場合、処理はステップＳ２３０に戻る。
【００５８】
ステップＳ２７２およびステップＳ２７３は、図６のステップＳ２５２およびステップＳ２５３と同じである。
【００５９】
ステップＳ２７４において、アクセス量判定部１５１は、対象アクセス量を第２基準値と比較する。第２基準値は、第１基準値よりも大きい値である。つまり、第２基準値が示すアクセス数は、第１基準値が示すアクセス数よりも多い。
対象アクセス量が第２基準値を超えている場合、処理はステップＳ２７６に進む。
対象アクセス量が第２基準値を超えていない場合、処理はステップＳ２７５に進む。
【００６０】
ステップＳ２７５は、図６のステップＳ２５４と同じである。ステップＳ２７５の後、処理はステップＳ２３０に戻る。
【００６１】
ステップＳ２７６において、再起動制御部１４４は、再起動を休止させる。
具体的には、再起動制御部１４４は、再起動のプロセスを実行状態または実行可能状態からスリープ状態にする。そして、再起動制御部１４４は、再起動のプロセスをスリープ状態にしたときから休止時間が経過したときに、再起動のプロセスを実行状態または実行可能状態にする。
ステップＳ２７６の後、処理はステップＳ２３０に戻る。
【００６２】
実施の形態３．
再起動でメモリ１２１に対して発生するダイレクトメモリアクセスのアクセス量を状態監視の対象とする形態について、主に実施の形態１と異なる点を、図８から図１１に基づいて説明する。
【００６３】
＊＊＊構成の説明＊＊＊
図８に基づいて、情報処理装置１００のハードウェア構成を説明する。
情報処理装置１００は、実施の形態１で説明したハードウェアに加えて、バスコントローラ１２４とＤＭＡコントローラ１２５といったハードウェアを備える。ＤＭＡはダイレクトメモリアクセスの略称である。
【００６４】
情報処理装置１００のソフトウェア構成は、実施の形態１の図１と同じである。
コア１１１の機能構成は、実施の形態１の図２と同じである。
ハイパーバイザ部１４０の機能構成は、実施の形態１の図３と同じである。
【００６５】
図９に基づいて、再起動制御部１４４の機能構成を説明する。
再起動制御部１４４は、アクセス量判定部１６１と、命令変換部１６２とを備える。これらの機能については後述する。
【００６６】
＊＊＊動作の説明＊＊＊
実施の形態３における状態監視、制限条件および制限制御は、以下の通りである。
状態監視で監視される情報処理装置１００の状態は、対象アクセス量である。
対象アクセス量は、再起動でメモリ１２１に対して発生するダイレクトメモリアクセスのアクセス量である。具体的には、アクセス量は、ＤＭＡ命令の数またはアクセスされるデータのサイズである。ＤＭＡ命令は、ダイレクトメモリアクセスの命令であり、ＤＭＡコントローラ１２５によって実行される。
【００６７】
制限条件は、対象アクセス量が基準値を超えるという条件である。基準値は予め決められた値である。
制限制御は、再起動でメモリ１２１に対して発生するダイレクトメモリアクセスの命令を、プログラム制御方式の命令に変換する、という制御である。プログラム制御方式は、ＰＩＯ（Ｐｒｏｇｒａｍｍｅｄ  Ｉ／Ｏ）と呼ばれる。プログラム制御方式の命令をＰＩＯ命令という。ＰＩＯ命令はバスコントローラ１２４によって実行される。
【００６８】
図１０に基づいて、再起動制御方法を説明する。
ステップＳ３１０およびステップＳ３２０は、実施の形態１における図４のステップＳ１１０およびステップＳ１２０と同じである。
つまり、ステップＳ３１０で稼働中のＯＳに異常が発生した場合、異常が発生したＯＳの再起動がステップＳ３２０で開始される。
【００６９】
ステップＳ３３０は、実施の形態１における図４のステップＳ１４３に相当する。
ステップＳ３３０において、再起動制御部１４４は、再起動が終了したか判定する。判定方法は、実施の形態１における図４のステップＳ１４３と同じである。
再起動が終了した場合、処理は終了する。
再起動が終了していない場合、処理はステップＳ３４０に進む。
【００７０】
ステップＳ３４０は、実施の形態１における図４のステップＳ１３０に相当する。
ステップＳ３４０において、状態監視部１４３は対象アクセス量を監視する。
具体的には、状態監視部１４３は、再起動で発生したＤＭＡ命令を検出し、検出されたＤＭＡ命令の数を求める。または、状態監視部１４３は、ＤＭＡ命令を検出し、検出されたＤＭＡ命令でアクセスされるデータのサイズを求める。求められるＤＭＡ命令の数またはデータのサイズが対象アクセス量である。
【００７１】
ステップＳ３５１は、実施の形態１における図４のステップＳ１４１に相当する。
ステップＳ３５１において、アクセス量判定部１６１は、対象アクセス量を基準値と比較する。
対象アクセス量が基準値を超えている場合、処理はステップＳ３５２に進む。
対象アクセス量が基準値を超えていない場合、再起動で発生したＤＭＡ命令はＤＭＡコントローラ１２５によって実行され、処理はステップＳ３３０に戻る。
【００７２】
ステップＳ３５２は、実施の形態１における図４のステップＳ１４２に相当する。
ステップＳ３５２において、命令変換部１６２は、再起動で発生したＤＭＡ命令をＰＩＯ命令に変換する。変換後のＰＩＯ命令は、バスコントローラ１２４によって実行される。
ステップＳ３５２の後、処理はステップＳ３３０に戻る。
【００７３】
＊＊＊実施の形態３の効果＊＊＊
再起動で発生するＤＭＡ命令をＰＩＯ命令に変換することにより、再起動でのメモリ１２１への単位時間当たりのアクセス数を減らすことが可能になる。
その結果、再起動におけるバス１２０の占有率が低くなり、バス１２０を介してハードウェアにアクセスする際の稼働中のＯＳの待ち時間が少なくなる。
したがって、稼働中のＯＳの性能の低下を抑えることが可能となる。
【００７４】
＊＊＊他の構成＊＊＊
対象アクセス量が多い場合、再起動制御部１４４は、再起動で発生したＤＭＡ命令の一部または全部をＰＩＯ命令に変換してもよい。
図１１に基づいて、対象アクセス量が基準値を超えている場合に、再起動で発生したＤＭＡ命令の一部または全部をＰＩＯ命令に変換する再起動制御方法を説明する。
【００７５】
ステップＳ３１０からステップＳ３４０は、図１０で説明した通りである。
ステップＳ３６１において、アクセス量判定部１６１は、対象アクセス量を第１基準値と比較する。
対象アクセス量が第１基準値を超えている場合、処理はステップＳ３６２に進む。
対象アクセス量が第１基準値を超えていない場合、処理はステップＳ３３０に戻る。
【００７６】
ステップＳ３６２において、アクセス量判定部１６１は、対象アクセス量を第２基準値と比較する。第２基準値は、第１基準値よりも大きい値である。つまり、第２基準値が示すアクセス量は、第１基準値が示すアクセス量よりも多い。
対象アクセス量が第２基準値を超えている場合、処理はステップＳ３６４に進む。
対象アクセス量が第２基準値を超えていない場合、処理はステップＳ３６３に進む。
【００７７】
ステップＳ３６３において、命令変換部１６２は、再起動で発生したＤＭＡ命令から一部のＤＭＡ命令を選択し、選択されたＤＭＡ命令をＰＩＯ命令に変換する。具体的には、命令変換部１６２は、半分のＤＭＡ命令をＰＩＯ命令に変換する。変換されなかったＤＭＡ命令はＤＭＡコントローラ１２５によって実行され、変換後のＰＩＯ命令はバスコントローラ１２４によって実行される。
ステップＳ３６３の後、処理はステップＳ３３０に戻る。
【００７８】
ステップＳ３６４において、命令変換部１６２は、再起動で発生したＤＭＡ命令をＰＩＯ命令に変換する。具体的には、命令変換部１６２は、再起動で発生したＤＭＡ命令の全てをＰＩＯ命令に変換する。変換後のＰＩＯ命令はバスコントローラ１２４によって実行される。
ステップＳ３６４の後、処理はステップＳ３３０に戻る。
【００７９】
実施の形態４．
再起動の対象でないＯＳからのキャッシュ１２９へのアクセスで発生するキャッシュミスのミス率を状態監視の対象とする形態について、主に実施の形態１と異なる点を、図１２から図１４に基づいて説明する。
【００８０】
＊＊＊構成の説明＊＊＊
図１２に基づいて、情報処理装置１００のハードウェア構成を説明する。
情報処理装置１００は、実施の形態１で説明したハードウェアに加えて、キャッシュコントローラ１２６というハードウェアを備える。
【００８１】
情報処理装置１００のソフトウェア構成は、実施の形態１の図１と同じである。
コア１１１の機能構成は、実施の形態１の図２と同じである。
ハイパーバイザ部１４０の機能構成は、実施の形態１の図３と同じである。
【００８２】
図１３に基づいて、再起動制御部１４４の機能構成を説明する。
再起動制御部１４４は、ミス率判定部１７１と、アクセス制御部１７２とを備える。アクセス制御部１７２の機能については後述する。
【００８３】
＊＊＊動作の説明＊＊＊
実施の形態４における状態監視、制限条件および制限制御は、以下の通りである。
状態監視で監視される情報処理装置１００の状態は、対象ミス率である。
対象ミス率は、再起動の対象でないオペレーティングシステムからのキャッシュ１２９へのアクセスで発生するキャッシュミスのミス率である。
【００８４】
制限条件は、対象ミス率が基準値を超えるという条件である。基準値は予め決められた値である。
制限制御は、再起動中のオペレーティングシステムからのキャッシュ１２９へのアクセスを禁止する制御である。
【００８５】
図１４に基づいて、再起動制御方法を説明する。
ステップＳ４１０およびステップＳ４２０は、実施の形態１における図４のステップＳ１１０およびステップＳ１２０と同じである。
つまり、ステップＳ４１０で稼働中のＯＳに異常が発生した場合、異常が発生したＯＳの再起動がステップＳ４２０で開始される。
【００８６】
ステップＳ４３０は、実施の形態１における図４のステップＳ１４３に相当する。
ステップＳ４３０において、再起動制御部１４４は、再起動が終了したか判定する。判定方法は、実施の形態１における図４のステップＳ１４３と同じである。
再起動が終了した場合、処理は終了する。
再起動が終了していない場合、処理はステップＳ４４０に進む。
【００８７】
ステップＳ４４０は、実施の形態１における図４のステップＳ１３０に相当する。
ステップＳ４４０において、状態監視部１４３は対象ミス率を監視する。
具体的には、状態監視部１４３は、稼働中のＯＳからのキャッシュ１２９へのアクセスの回数と、稼働中のＯＳからのキャッシュ１２９へのアクセスで発生したキャッシュミスの回数とを数える。そして、状態監視部１４３は、アクセスの回数とキャッシュミスの回数とを用いて、対象ミス率を算出する。具体的には、対象ミス率は、キャッシュミスの回数をアクセスの回数で割って得られる商である。
【００８８】
ステップＳ４５１は、実施の形態１における図４のステップＳ１４１に相当する。
ステップＳ４５１において、ミス率判定部１７１は、対象ミス率を基準値と比較する。
対象ミス率が基準値を超えている場合、処理はステップＳ４５２に進む。
対象ミス率が基準値を超えていない場合、処理はステップＳ４３０に戻る。
【００８９】
ステップＳ４５２は、実施の形態１における図４のステップＳ１４２に相当する。
ステップＳ４５２において、アクセス制御部１７２は、再起動中のＯＳからのキャッシュ１２９へのアクセスを禁止する。
具体的には、アクセス制御部１７２は、キャッシュコントローラ１２６に対して、再起動中のＯＳからのキャッシュ１２９へのアクセスを禁止する設定を行う。
ステップＳ４５２の後、処理はステップＳ４３０に戻る。
【００９０】
ステップＳ４６０において、アクセス制御部１７２は、再起動後のＯＳからのキャッシュ１２９へのアクセスを許可する。但し、再起動中のＯＳからのキャッシュ１２９へのアクセスが禁止されていない場合、再起動後のＯＳからのキャッシュ１２９へのアクセスを許可する必要はない。
具体的には、アクセス制御部１７２は、再起動後のＯＳからのキャッシュ１２９へのアクセスに対する設定を示す設定値をキャッシュコントローラ１２６から取得する。取得された設定値がアクセスの禁止を意味する値である場合、アクセス制御部１７２は、キャッシュコントローラ１２６に対して、禁止を解除する設定を行う。
ステップＳ４６０の後、処理は終了する。
【００９１】
＊＊＊実施の形態４の効果＊＊＊
再起動でのキャッシュ１２９へのアクセスを禁止することにより、再起動によるキャッシュ１２９の更新を抑止することが可能になる。
その結果、稼働中のＯＳがキャッシュ１２９にアクセスした際のキャッシュミスが減る。したがって、稼働中のＯＳの性能の低下を抑えることが可能となる。
【００９２】
＊＊＊実施の形態の補足＊＊＊
情報処理装置１００は、異常検出部１４１と再起動部１４２と状態監視部１４３と再起動制御部１４４といった「部」を機能構成の要素として備える。「部」の機能はソフトウェアで実現される。具体的には、「部」の機能は、ハイパーバイザ１０１の機能として実現される。
「部」の機能を実現するプログラムは、メモリ１２１にロードされて、プロセッサ１１０によって実行される。
「部」の機能を実現するプログラムを実行して得られるデータは、メモリ１２１またはキャッシュ１２９といった記憶装置に記憶される。
「部」の機能を実現するプログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体にコンピュータ読み取り可能に記憶することができる。不揮発性の記憶媒体は、一時的でない有形の媒体である。
「部」は「処理」、「工程」または「回路」に読み替えてもよい。プロセッサ１１０とメモリ１２１とキャッシュ１２９とをまとめたハードウェアを「プロセッシングサーキットリ」という。
【００９３】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【００９４】
１００  情報処理装置、１０１  ハイパーバイザ、１０２  リアルタイムＯＳ、１０３  リアルタイムアプリケーション、１０４  汎用ＯＳ、１０５  汎用アプリケーション、１１０  プロセッサ、１１１  コア、１１２  周波数変更機構、１１３  クロックジェネレータ、１１４  割り込みコントローラ、１２０  バス、１２１  メモリ、１２２  ＷＤＴ、１２３  Ｉ／Ｏデバイス、１２４  バスコントローラ、１２５  ＤＭＡコントローラ、１２６  キャッシュコントローラ、１２９  キャッシュ、１３１  ＯＳ部、１３２  アプリケーション部、１４０  ハイパーバイザ部、１４１  異常検出部、１４２  再起動部、１４３  状態監視部、１４４  再起動制御部、１５１  アクセス量判定部、１５２  周波数決定部、１５３  周波数変更部、１６１  アクセス量判定部、１６２  命令変換部、１７１  ミス率判定部、１７２  アクセス制御部。
【図１】
2017195276.tif 000003
【図２】
2017195276.tif 000004
【図３】
2017195276.tif 000005
【図４】
2017195276.tif 000006
【図５】
2017195276.tif 000007
【図６】
2017195276.tif 000008
【図７】
2017195276.tif 000009
【図８】
2017195276.tif 000010
【図９】
2017195276.tif 000011
【図１０】
2017195276.tif 000012
【図１１】
2017195276.tif 000013
【図１２】
2017195276.tif 000014
【図１３】
2017195276.tif 000015
【図１４】
2017195276.tif 000016
【手続補正書】
【提出日】平成28年10月13日(2016.10.13)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のプロセッサコアを有するマルチコアプロセッサと前記複数のプロセッサコアからアクセスされるメモリとを備えて前記複数のプロセッサコアによって複数のオペレーティングシステムを動作させる情報処理装置であって、
前記複数のオペレーティングシステムに含まれるオペレーティングシステムに異常が発生した場合、異常が発生したオペレーティングシステムの再起動を前記複数のプロセッサコアに含まれるプロセッサコアに実行させる再起動部と、
前記再起動の実行中に前記情報処理装置の状態を監視する状態監視部と、
前記再起動の実行中に前記情報処理装置の状態が前記再起動の実行を制限する制限条件を満たした場合、前記再起動の実行に対して制限制御を行った上で再起動を行う再起動制御部と、
前記制限条件は、前記再起動での前記メモリへの単位時間当たりのアクセス数である対象アクセス量が基準値を超えるという条件であり、
前記状態監視部は、前記情報処理装置の状態として、前記対象アクセス量を監視し、
前記再起動制御部は、前記対象アクセス量が前記基準値を超えた場合、前記制限制御として、前記再起動を実行するプロセッサコアである対象コアの動作周波数を、前記対象アクセス量が前記基準値を超える前の前記対象コアの動作周波数よりも低くする
情報処理装置。
【請求項２】
前記再起動制御部は、前記対象コアの動作周波数を前記対象アクセス量が前記基準値を超える前の前記対象コアの動作周波数である通常周波数よりも低くした後に前記再起動が終了した場合、前記対象コアの動作周波数を前記通常周波数に戻す
請求項１に記載の情報処理装置。
【請求項３】
前記再起動制御部は、前記対象アクセス量が前記基準値である第１基準値よりも大きい第２基準値を超えた場合、前記再起動を休止させる
請求項１に記載の情報処理装置。
【請求項４】
前記情報処理装置は、前記複数のプロセッサコアからアクセスされるメモリを備え、
前記制限条件は、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスのアクセス量である対象アクセス量が基準値を超えるという条件であり、
前記状態監視部は、前記情報処理装置の状態として、前記対象アクセス量を監視し、
前記再起動制御部は、前記対象アクセス量が前記基準値を超えた場合、前記制限制御として、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスの命令を、プログラム制御方式の命令に変換する
請求項１に記載の情報処理装置。
【請求項５】
前記再起動制御部は、前記対象アクセス量が前記基準値を超えた場合、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスのうちの一部のダイレクトメモリアクセスの命令を、プログラム制御方式の命令に変換する
請求項４に記載の情報処理装置。
【請求項６】
前記再起動制御部は、前記対象アクセス量が前記基準値である第１基準値よりも大きい第２基準値を超えた場合、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスの全ての命令を、プログラム制御方式の命令に変換する
請求項５に記載の情報処理装置。
【請求項７】
前記情報処理装置は、前記複数のプロセッサコアからアクセスされるキャッシュを備え、
前記制限条件は、前記再起動の対象でないオペレーティングシステムからの前記キャッシュへのアクセスで発生するキャッシュミスのミス率である対象ミス率が基準値を超えるという条件であり、
前記状態監視部は、前記情報処理装置の状態として、前記対象ミス率を監視し、
前記再起動制御部は、前記対象ミス率が前記基準値を超えた場合、前記制限制御として、再起動中のオペレーティングシステムからの前記キャッシュへのアクセスを禁止する
請求項１に記載の情報処理装置。
【請求項８】
前記再起動制御部は、再起動中のオペレーティングシステムからの前記キャッシュへのアクセスを禁止した後に前記再起動が終了した場合、再起動後のオペレーティングシステムからの前記キャッシュへのアクセスを許可する
請求項７に記載の情報処理装置。
【国際調査報告】
2017195276.tif 000017
2017195276.tif 000018
2017195276.tif 000019
2017195276.tif 000020