(57)【要約】【課題】ＯＳ運用に悪影響を与えずに、ＯＳ運用中におけるシステム管理モードのプログラム処理時間を最適化できるシステム管理モード処理時間最適化装置を提供する。【解決手段】本願発明のシステム管理モード処理時間最適化装置は、プロセッサがスリープモードの状態であるかを判定する判定手段と、プロセッサが、システム管理モードで実行するプログラムを記憶する記憶手段と、プロセッサがＯＳ実行中に、当該プロセッサをシステム管理モードへ移行させ、プログラムの一部を実行させた後、システム管理モードを終了させることを、プログラムの実行が完了するまで、１サイクル以上繰り返し行い、システム管理モードへの移行直前の判定手段の判定結果を参照し、スリープモードであるときは、スリープモードでないときと比較して、１サイクルあたりのプログラムの実行時間を長くして、プログラムをプロセッサに実行させる実行指示手段と、を備える。【選択図】      図１
2014089622.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサがスリープモードの状態であるかを判定する判定手段と、
前記プロセッサが、システム管理モードで実行するプログラムを記憶する記憶手段と、
前記プロセッサがＯＳ実行中に、当該プロセッサを前記システム管理モードへ移行させ、前記プログラムの一部を実行させた後、システム管理モードを終了させることを、前記プログラムの実行が完了するまで、１サイクル以上繰り返し行う手段であって、前記システム管理モードへの移行直前の前記判定手段の判定結果を参照し、前記判定結果が前記スリープモードであるときは、前記スリープモードでないときと比較して、前記１サイクルあたりの前記プログラムの実行時間を長くして、前記プログラムを前記プロセッサに実行させる実行指示手段と、
を備えるシステム管理モード処理時間最適化装置。
【請求項２】
前記記憶手段は、前記プログラムを分割した分割プログラムを記憶し、
前記実行手段は、前記判定結果が前記スリープモードでないときは、前記プロセッサに実行させる前記分割プログラムを、前記１サイクルあたり１つとし、前記判定結果が前記スリープモードであるときは、前記１サイクル内で複数の前記分割プログラムを連続して前記プロセッサに実行させる
請求項１のシステム管理モード処理時間最適化装置。
【請求項３】
前記実行手段は、前記判定結果が前記スリープモードであるときは、前記システム管理モードへ移行した時からの経過時間が、所定の最大時間に達するまで、前記１サイクル内で前記プログラムを前記プロセッサに実行させる
請求項１乃至２のシステム管理モード処理時間最適化装置。
【請求項４】
前記プロセッサの、所定の時間の負荷平均値を算出する測定手段と、
前記プロセッサが前記システム管理モードへ移行する直前の、前記プロセッサの前記負荷平均値を前記測定手段から受信して、前記負荷平均値と負の相関関係を有し、かつ、１つの前記分割プログラムの実行時間以上である値を、前記最大時間として決定する最大時間決定手段と、
をさらに備える請求項２乃至３のシステム管理モード処理時間最適化装置。
【請求項５】
前記測定手段は、前記判定手段の前記判定結果から、前記プロセッサが前記スリープモードの状態でない時間を測定し、前記所定の時間における、前記プロセッサが前記スリープモードの状態でない時間の割合を、前記負荷平均値とする
請求項２乃至４のシステム管理モード処理時間最適化装置。
【請求項６】
前記判定手段は、複数のスリープ状態のレベルの前記スリープモードを有する前記プロセッサについて、前記プロセッサの前記スリープモードの前記レベルが、所定の値以上であることをもって、前記プロセッサが前記スリープモードの状態であると判定する
請求項１乃至５のシステム管理モード処理時間最適化装置。
【請求項７】
前記実行指示手段は、前記ＯＳが、前記プロセッサを、通常動作モードから前記スリープモードへ移行させるか否かを判断するときに、前記プロセッサの前記スリープモードから前記通常動作モードへの移行に要する時間に、前記最大時間を加算した値を、前記スリープモードから前記通常動作モードへの最大復帰時間として、前記ＯＳへ報告する
請求項１乃至６のシステム管理モード処理時間最適化装置。
【請求項８】
前記実行指示手段は、複数の前記プロセッサの何れかが、前記１サイクルの前記プログラムの実行を終了した時点で、実行すべき前記プログラムの実行が完了していない場合、前記システム管理モードへの移行直前の当該プロセッサの前記判定結果が、前記スリープモードのときは、次の前記１サイクルを当該プロセッサで優先的に実行させる
請求項１乃至７のシステム管理モード処理時間最適化装置。
【請求項９】
プロセッサがスリープモードの状態であるかを判定し、
前記プロセッサが、システム管理モードで実行するプログラムを記憶域に記憶し、
前記プロセッサがＯＳ実行中に、当該プロセッサを前記システム管理モードへ移行させ、前記プログラムの一部を実行させた後、システム管理モードを終了させることを、前記プログラムの実行が完了するまで、１サイクル以上繰り返し行う際に、前記システム管理モードへの移行直前の前記プロセッサの前記スリープモードの判定結果を参照し、前記判定結果が前記スリープモードであるときは、前記スリープモードでないときと比較して、前記１サイクルあたりの前記プログラムの実行時間を長くして、前記プログラムを前記プロセッサに実行させる
システム管理モード処理時間最適化方法。
【請求項１０】
プロセッサがスリープモードの状態であるかを判定する判定処理と、
前記プロセッサが、システム管理モードで実行するプログラムを記憶域に記憶する記憶処理と、
前記プロセッサがＯＳ実行中に、当該プロセッサを前記システム管理モードへ移行させ、前記プログラムの一部を実行させた後、システム管理モードを終了させることを、前記プログラムの実行が完了するまで、１サイクル以上繰り返し行う処理であって、前記システム管理モードへの移行直前の前記判定処理の判定結果を参照し、前記判定結果が前記スリープモードであるときは、前記スリープモードでないときと比較して、前記１サイクルあたりの前記プログラムの実行時間を長くして、前記プログラムを前記プロセッサに実行させる実行指示処理と、
をコンピュータに実行させるシステム管理モード処理時間最適化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、ＯＳ運用中におけるシステム管理モードのプログラム処理時間を最適化するための、システム管理モード処理時間最適化装置、システム管理モード処理時間最適化システム、システム管理モード処理時間最適化方法、及び、システム管理モード処理時間最適化プログラムに関する。
【背景技術】
【０００２】
コンピュータシステムにおいては、ＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）運用中に、システム管理に関わる様々な割り込みが発生する。近年、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）が提供する機能の高度化に伴い、ＯＳ運用中にシステム管理モードに移行して、プロセッサやメモリ等を増設、初期化することなども可能となってきている。
【０００３】
このような高度なシステム管理機能は処理に時間がかかるが、システム管理モードを長時間継続させることにより、ＯＳの実行を長時間一時停止させることは、ＯＳ運用上あまり好ましいことではない。したがって、割り込み処理の実行を適切に管理して、ＯＳ運用に支障をきたさないようにシステム管理を行うことが求められている。
【０００４】
このような適切なシステム管理に関連する技術として、特許文献１には、システム管理ルーチンのためにプロセッサの状態情報を格納するメモリ領域を予めに定義しておき、プロセッサは、システム管理割り込みを受けた場合、システム管理ルーチン実行により影響を受ける状態情報を格納し、その他の状態情報は、時間的オーバーヘッドが最小となるように格納するようにしたシステムが公開されている。
【０００５】
また、特許文献２には、システムの初期化時に、ＣＰＵステートマップ情報をメモリ上に保存し、ＯＳ起動中にシステム管理割り込み要求を受けた場合、ＣＰＵの動作モードをシステム管理モードから割り込み可能なモードへ変更し、割り込み制御処理を割り込み可能なモードで実行することにより、割り込み制御処理中で必要な処理を並列実行するようにしたシステムが公開されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平6-230979号公報
【特許文献２】特開平11-73330号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述の特許文献１、及び、特許文献２のシステムは、システム管理割り込み処理の実行を適切に管理して、ＯＳ運用に支障をきたさないようにするための機能を備えているが、ＯＳ運用中のプロセッサの状態を動的に監視して、システム管理を適切に行うことは実施していない。ＯＳ運用中のプロセッサの状態を基に、システム管理モードでの処理実行を管理することができれば、さらにＯＳ運用上好ましいシステム管理を行うことが可能となる。
【０００８】
本願発明の目的は、上述の課題を解決したシステム管理モード処理時間最適化装置、システム管理モード処理時間最適化システム、システム管理モード処理時間最適化方法、及び、システム管理モード処理時間最適化プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本願発明の一実施形態のシステム管理モード処理時間最適化装置は、プロセッサがスリープモードの状態であるかを判定する判定手段と、前記プロセッサが、システム管理モードで実行するプログラムを記憶する記憶手段と、前記プロセッサがＯＳ実行中に、当該プロセッサを前記システム管理モードへ移行させ、前記プログラムの一部を実行させた後、システム管理モードを終了させることを、前記プログラムの実行が完了するまで、１サイクル以上繰り返し行う手段であって、前記システム管理モードへの移行直前の前記判定手段の判定結果を参照し、前記判定結果が前記スリープモードであるときは、前記スリープモードでないときと比較して、前記１サイクルあたりの前記プログラムの実行時間を長くして、前記プログラムを前記プロセッサに実行させる実行指示手段と、を備える。
【００１０】
本願発明の一実施形態のシステム管理モード処理時間最適化方法は、プロセッサがスリープモードの状態であるかを判定し、前記プロセッサが、システム管理モードで実行するプログラムを記憶域に記憶し、前記プロセッサがＯＳ実行中に、当該プロセッサを前記システム管理モードへ移行させ、前記プログラムの一部を実行させた後、システム管理モードを終了させることを、前記プログラムの実行が完了するまで、１サイクル以上繰り返し行う際に、前記システム管理モードへの移行直前の前記プロセッサの前記スリープモードの判定結果を参照し、前記判定結果が前記スリープモードであるときは、前記スリープモードでないときと比較して、前記１サイクルあたりの前記プログラムの実行時間を長くして、前記プログラムを前記プロセッサに実行させる。
【００１１】
本願発明の一実施形態のシステム管理モード処理時間最適化プログラムは、プロセッサがスリープモードの状態であるかを判定する判定処理と、前記プロセッサが、システム管理モードで実行するプログラムを記憶域に記憶する記憶処理と、前記プロセッサがＯＳ実行中に、当該プロセッサを前記システム管理モードへ移行させ、前記プログラムの一部を実行させた後、システム管理モードを終了させることを、前記プログラムの実行が完了するまで、１サイクル以上繰り返し行う処理であって、前記システム管理モードへの移行直前の前記判定処理の判定結果を参照し、前記判定結果が前記スリープモードであるときは、前記スリープモードでないときと比較して、前記１サイクルあたりの前記プログラムの実行時間を長くして、前記プログラムを前記プロセッサに実行させる実行指示処理と、をコンピュータに実行させる。
【発明の効果】
【００１２】
本願発明は、ＯＳ運用に悪影響を与えずに、ＯＳ運用中におけるシステム管理モードのプログラム処理時間を最適化することができるようにする。
【図面の簡単な説明】
【００１３】
【図１】本願発明の第１の実施形態のシステム管理モード処理時間最適化システムの構成を示すブロック図である。
【図２】本願発明の第１の実施形態の動作を示すフローチャートである。
【図３】本願発明の第１の実施形態における、プロセッサの負荷平均値と、プロセッサのシステム管理モードの最大時間との関係例である。
【図４】本願発明の第２の実施形態のシステム管理モード処理時間最適化システムの構成を示すブロック図である。
【図５】本願発明の第２の実施形態におけるシステム管理割り込み発生の優先設定の例である。
【図６】本願発明の第３の実施形態のシステム管理モード処理時間最適化装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１４】
本願発明の第１の実施の形態について図面を参照して詳細に説明する。
【００１５】
図１は本実施形態のシステム管理モード処理時間最適化システムの構成を示すブロック図である。
【００１６】
本実施形態のシステム管理モード処理時間最適化システム１は、システム管理モード処理時間最適化システム１０と、プロセッサ２０と、ＯＳ記憶部３０と、メモリ４０とを包含している。
【００１７】
プロセッサ２０は、ＯＳ記憶部３０からＯＳを読み出して、ＯＳを実行する。プロセッサ２０は、ＯＳ実行中にシステム管理割り込みが発生すると、ＯＳの実行を一時停止して、システム管理モードへ移行し、ＢＩＯＳ処理を実行する。プロセッサ２０は、所定のＢＩＯＳ処理を実行した後、システム管理モードを終了して、ＯＳの実行を再開する。
【００１８】
プロセッサ２０は、ＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）  Ｃ１乃至Ｃ３の３つのレベルのスリープモードを有している。ＡＣＰＩ  Ｃ１は、プロセッサ２０におけるコアのクロックが停止したスリープモードである。ＡＣＰＩ  Ｃ２は、プロセッサ２０におけるコアとバスのクロックが停止したスリープモードである。ＡＣＰＩ  Ｃ３は、クロック生成回路自体の動作も停止したスリープモードである。したがって、ＡＣＰＩ  Ｃ３のスリープモードが、最も深いスリープ状態である。尚、プロセッサ２０が、ＡＣＰＩ以外の仕様のスリープモードを有する場合もある。
【００１９】
メモリ４０は、プロセッサ２０のメモリ空間上にマップされたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ４０は、プロセッサ２０がシステム管理モードへ移行する際に、移行前のプロセッサ２０のレジスタ情報等の内部状態情報を記憶する。
【００２０】
プロセッサ２０は、システム管理モードから通常動作に復帰するときに、メモリ４０に記憶された内部状態情報を読み出すことで、システム管理モードへの移行前の状態に復帰する。
【００２１】
システム管理モード処理時間最適化装置１０は、ＢＩＯＳ記憶部１１と、判定部１２と、実行指示部１３と、測定部１４と、最大時間決定部１５とを包含している。ＢＩＯＳ記憶部１１と、判定部１２と、実行指示部１３と、測定部１４と、最大時間決定部１５は、電子回路である場合もあれば、コンピュータプログラムである場合もある。
【００２２】
ＢＩＯＳ記憶部１１は、分割プログラム１１０を包含している。分割プログラム１１０は、システムに追加されたプロセッサやメモリの初期化などの様々なＢＩＯＳ処理の各々について、複数の分割されたプログラムであり、システム管理モードにおいて、プロセッサ２０により１つずつ読み出されて実行される。
【００２３】
判定部１２は、プロセッサ２０がシステム管理モードへ移行する際にメモリ４０に保存したコンテキスト情報を参照して、プロセッサ２０がシステム管理モードへの移行直前に実行していた主記憶上の命令アドレスを入手する。判定部１２は、当該命令アドレスに、プロセッサ２０をスリープモードに遷移させる命令が存在する場合に、プロセッサ２０がスリープモードの状態であると判定して、判定結果を実行指示部１３へ送信する。
【００２４】
判定部１２は、ＡＣＰＩ  Ｃ１乃至Ｃ３の３つのレベルのスリープモードのうち、最もスリープ状態のレベルが高いＡＣＰＩ  Ｃ３の状態であることをもって、プロセッサ２０がスリープモードの状態であると判定する。尚、スリープモードの状態であると判定するレベルはＣ３に限定されるわけではなく、Ｃ１乃至Ｃ２のいずれかの場合もある。
【００２５】
測定部１４は、常時カウント動作するタイムスタンプカウンタ（図示せず）と、プロセッサ２０がＡＣＰＩ Ｃ３の状態である場合にカウント動作するＡＣＰＩ  Ｃ３状態カウンタ（図示せず）を包含している。
【００２６】
測定部１４は、プロセッサ２０でシステム管理割り込みが発生するたびに、タイムスタンプカウンタとＡＣＰＩ  Ｃ３状態カウンタのカウント値を、内部メモリ（図示せず）に記憶する。測定部１４は、プロセッサ２０でシステム管理割り込みが発生すると、現在のタイムスタンプカウンタとＡＣＰＩ  Ｃ３状態カウンタのカウント値と、内部メモリに記憶した前回のシステム管理割り込み時の、それぞれのカウンタのカウント値の差分を算出する。
【００２７】
測定部１４はさらに、前述で算出した値から、前回のシステム管理割り込みから今回のシステム管理割り込みまでの間で、プロセッサ２０がＡＣＰＩ  Ｃ３の状態でない時間の割合を算出して、プロセッサ２０の負荷平均値として、最大時間決定部１５へ送信する。尚、測定部１４は、前回のシステム管理割り込みから今回のシステム管理割り込みまでの間以外の時間で、プロセッサ２０の負荷平均値を算出する場合もある。
【００２８】
最大時間決定部１５は、測定部１４から受信したプロセッサ２０の負荷平均値をもとに、１つのシステム管理割り込みあたりの、プロセッサ２０がシステム管理モードを継続する最大継続時間を算出する。図３に、プロセッサの負荷平均値と、プロセッサのシステム管理モードの最大継続時間との対応関係１００のグラフの一例を示す。最大時間決定部１５は、負荷平均値と負の相関関係を有し、かつ、分割プログラム１１０のプログラム１つあたりの実行時間以上である値を、最大継続時間として算出して、実行指示部１３へ送信する。
【００２９】
実行指示部１３は、ＯＳやシステム内のハードウェア（図示せず）等からの指示により、ＯＳ実行中のプロセッサ２０に対してシステム管理割り込みをかけ、プロセッサ２０をシステム管理モードへ移行させる。実行指示部１３は、システム管理割り込みをかけたことを、判定部１２と測定部１４へ送信する。実行指示部１３は、プロセッサ２０をシステム管理モードに移行させた後、ＢＩＯＳ記憶部１１の分割プログラム１１０を実行させて、システム管理モードを終了させることを、ＢＩＯＳ処理が完了するまで１サイクル以上繰り返し実行する。
【００３０】
実行指示部１３は、判定部１２から受信した判定結果がＡＣＰＩ  Ｃ３の状態でない場合は、ＢＩＯＳ記憶部１１から、分割プログラム１１０のプログラムを１つ読み出して実行するようにプロセッサ２０に指示し、プロセッサ２０が当該プログラムの実行が完了すると、プロセッサ２０のシステム管理モードを終了させる。
【００３１】
実行指示部１３は、判定部１２から受信した判定結果がＡＣＰＩ  Ｃ３の状態である場合は、システム管理モードの終了を指示するまで、ＢＩＯＳ記憶部１１から、分割プログラム１１０のプログラムを連続して読み出して実行するようにプロセッサ２０に指示する。
【００３２】
実行指示部１３は、プロセッサ２０が、分割プログラム１１０の１つのプログラムの実行を完了した時点で、プロセッサ２０がシステム管理モードへ移行してからの経過時間を確認する。実行指示部１３は、経過時間が、最大時間決定部１５から受信した最大継続時間に達していない場合は、ＢＩＯＳ記憶部１１から、引き続き次の分割プログラム１１０のプログラムを読み出して実行するようにプロセッサ２０に指示する。実行指示部１３は、経過時間が、最大時間決定部１３から受信した最大継続時間に達した場合は、プロセッサ２０のシステム管理モードを終了させる。
【００３３】
実行指示部１３は、プロセッサ２０に上述の１サイクルの処理を実行させた後、所定のＢＩＯＳ処理が全て完了したかを確認し、ＢＩＯＳ処理がまだ完了していない場合は、所定の時間待機した後、プロセッサ２０に対して再びシステム管理割り込みをかけ、続きの分割プログラム１１０を実行させる。
【００３４】
実行指示部１３は、また、ＯＳが、プロセッサ２０を、通常動作の状態からＡＣＰＩ  Ｃ３の状態へ移行させるか否かを判断するときに、プロセッサ２０がＡＣＰＩ  Ｃ３の状態から通常動作の状態に復帰するのに要する時間に、最大時間決定部１５から受信した最大継続時間を加算した値を、ＡＣＰＩ  Ｃ３の状態から通常動作の状態への最大復帰時間として、ＯＳに報告する。
【００３５】
次に図２のフローチャートを参照して、本実施形態の動作について詳細に説明する。
【００３６】
実行指示部１３は、ＯＳ実行中のプロセッサ２０に対してシステム管理割り込みをかけ、システム管理割り込みをかけたことを、判定部１２と測定部１４へ送信する（Ｓ１０１）。プロセッサ２０は、内部状態情報をメモリ４０に格納した後、システム管理モードへ移行する（Ｓ１０２）。判定部１２は、プロセッサ２０がメモリ４０に格納した内部状態情報から、プロセッサ２０のシステム管理モードへの移行直前の状態を確認する（Ｓ１０３）。
【００３７】
プロセッサ２０がＡＣＰＩ  Ｃ３の状態の場合（Ｓ１０４でＹｅｓ）、測定部１４は、プロセッサ２０がシステム管理モードへ移行する前の所定の時間内のＡＣＰＩ  Ｃ３の状態でない時間の割合から、プロセッサ２０の負荷平均値を算出し、最大時間決定部１５へ送信する（Ｓ１０５）。
【００３８】
最大時間決定部１５は、測定部１４から受信したプロセッサ２０の負荷平均値を基に、プロセッサ２０がシステム管理モードの状態を継続する最大継続時間を算出し、実行指示部１３へ送信する（Ｓ１０６）。実行指示部１３は、プロセッサ２０に、ＢＩＯＳ記憶部１１から分割プログラム１１０を読み出して実行することを指示する（Ｓ１０７）。
【００３９】
プロセッサ２０は、ＢＩＯＳ記憶部１１から分割プログラム１１０を１つ読み出して実行する（Ｓ１０８）。実行指示部１３は、プロセッサ２０がシステム管理モードへ移行してからの経過時間を確認する（Ｓ１０９）。経過時間が最大継続時間未満の場合（Ｓ１１０でＹｅｓ）、実行指示部１３は、プロセッサ２０に、引き続きＢＩＯＳ記憶部１１から次の分割プログラム１１０を読み出して実行することを指示し（Ｓ１１１）、処理はＳ１０８へ戻る。経過時間が最大継続時間以上の場合（Ｓ１１０でＮｏ）、処理はＳ１１４へ進む。
【００４０】
Ｓ１０３の確認結果で、プロセッサ２０がＡＣＰＩ  Ｃ３の状態でない場合（Ｓ１０４でＮｏ）、実行指示部１３は、プロセッサ２０に、ＢＩＯＳ記憶部１１から分割プログラム１１０を１つ読み出して実行することを指示する（Ｓ１１２）。プロセッサ２０は、ＢＩＯＳ記憶部１１から分割プログラム１１０を１つ読み出して実行する（Ｓ１１３）。実行指示部１３は、プロセッサ２０に、システム管理モードを終了させることを指示する（Ｓ１１４）。
【００４１】
プロセッサ２０は、メモリ４０に格納した内部状態情報を読み込んで、システム管理モードから復帰し、ＯＳの実行を再開する（Ｓ１１５）。実行指示部１３は、ＢＩＯＳ処理が全て完了したか確認する（Ｓ１１６）。ＢＩＯＳ処理が全て完了している場合（Ｓ１１７でＹｅｓ）、全体の処理は終了する。ＢＩＯＳ処理が全て完了していない場合（Ｓ１１７でＮｏ）、実行指示部１３は、所定の時間待機した後（Ｓ１１８）、処理はＳ１０１へ戻る。
【００４２】
本実施形態には、ＯＳ運用に悪影響を与えずに、ＯＳ運用中におけるシステム管理モードのＢＩＯＳ処理時間を最適化することができる効果がある。その理由は、実行指示部１３が、プロセッサ２０のシステム管理モードへの移行直前の状態が、スリープモードでない場合は、プロセッサ２０にＢＩＯＳの分割プログラム１１０のプログラムを１つ実行させた後にシステム管理モードを終了させ、スリープモードの場合は、システム管理モードに移行してからの経過時間が所定の最大継続時間に達するまでは、プロセッサ２０に分割プログラム１１０のプログラムを連続実行させるからである。
【００４３】
システム管理割り込みの発生により、プロセッサ２０が長時間システム管理モードでＢＩＯＳ処理を行うことは、ＯＳ上で実行されているアプリケーションが長時間一時停止することになるため、ＯＳ運用上好ましいことではない。ＢＩＯＳのプログラムを予め分割しておき、プロセッサ２０が、分割されたＢＩＯＳプログラムを１つ実行した後、システム管理モードを一旦終了することで、システム管理モードが長時間継続することを回避することができる。
【００４４】
しかしながら、上述の方式では、ＢＩＯＳ処理が完了するまでの時間が長くなるため、システムメンテナンス上問題となる。したがって、ＯＳ運用に悪影響を与えずに、ＯＳ運用中におけるシステム管理モードのＢＩＯＳ処理時間を最適化することが、システム運用上重要となる。
【００４５】
例えば、夜間等のシステムの負荷が軽い時間帯では、ＢＩＯＳ処理を継続して実行する時間を長くすることで、ＯＳが一時停止する時間が多少長くなったとしても、ＯＳ運用上での影響は小さい。システムの負荷の重さの指標の１つとして、プロセッサがスリープモードの状態であるかどうかということがある。
【００４６】
本実施形態では、判定部１２が、システム管理モードへの移行直前のプロセッサ２０のスリープ状態を確認して実行指示部１３へ報告し、実行指示部１３が、報告結果を基に、１つのシステム管理割り込みでプロセッサ２０に実行させる分割プログラム１１０のプログラムの数を制御することで、ＯＳ運用に悪影響を与えずに、ＯＳ運用中におけるシステム管理モードのＢＩＯＳ処理時間を最適化することが可能となる。
【００４７】
本実施形態では、また、測定部１４が、プロセッサ２０がスリープモードの状態にある時間の割合からシステムの負荷平均値を算出し、最大時間決定部１５が、負荷平均値を基に１つのシステム管理割り込みあたりのシステム管理モードの最大継続時間を決定することで、システム管理モードのＢＩＯＳ処理時間を、きめ細かく最適化することが可能となる。
【００４８】
さらに、本実施形態では、実行指示部１３が、プロセッサ２０がスリープ状態から通常動作の状態に復帰するのに要する時間に最大時間決定部１５が決定した最大継続時間を加算した値を、スリープ状態からの最大復帰時間として、ＯＳに報告する。
【００４９】
ＯＳは、報告を受けた最大復帰時間をもとに、プロセッサ２０を通常動作の状態からスリープ状態へ移行させるか否かを判断するため、プロセッサ２０のスリープ状態からの復帰が、前述の最大復帰時間内であれば、仕様上の問題は生じない。本実施形態では、実行指示部１３の前述の報告動作により、１回のシステム管理割り込みで、プロセッサ２０が最大継続時間の間、ＢＩＯＳ処理を実行したとしても、ＯＳからは前述の最大復帰時間内であると見えるため、システム管理モードのＢＩＯＳ処理時間が、ＯＳ運用に悪影響を与えないことを保障することが可能となる。
＜第２の実施形態＞
次に、本願発明の第２の実施形態について図面を参照して詳細に説明する。
【００５０】
図４は本願発明の第２の実施形態のシステム管理モード処理時間最適化システムの構成を示すブロック図である。
【００５１】
本実施形態のシステム管理モード処理時間最適化システム１の構成は、プロセッサ２１を包含していることを除いて、第１の実施形態と同様である。システム管理モード処理時間最適化システム１に包含される各構成要素の動作も、第１の実施形態とほぼ同様である。
【００５２】
実行指示部１３は、プロセッサ２０乃至２１の何れかにおいて、１回のシステム管理割り込みによるＢＩＯＳ処理が終了した時点で、所定のＢＩＯＳ処理が全て完了していない場合、当該プロセッサのシステム管理モードへの移行直前の状態が、ＡＣＰＩ  Ｃ３の状態である場合、次のシステム管理割り込みを、当該プロセッサで優先的に発生させる。
【００５３】
図５に、本実施形態における、システム管理割り込み優先設定一覧２００の一例を示す。プロセッサ２０がＡＣＰＩ  Ｃ３の状態であり、プロセッサ２１がＡＣＰＩ  Ｃ３の状態でない場合、実行指示部１３は、次のシステム管理割り込みの発生に関し、プロセッサ２０を優先させる。プロセッサ２０がＡＣＰＩ  Ｃ３の状態でなく、プロセッサ２１がＡＣＰＩ  Ｃ３の状態である場合、実行指示部１３は、次のシステム管理割り込みの発生に関し、プロセッサ２１を優先させる。
【００５４】
プロセッサ２０乃至２１がいずれもＡＣＰＩ  Ｃ３の状態である場合、あるいは、プロセッサ２０乃至２１がいずれもＡＣＰＩ  Ｃ３の状態でない場合、実行指示部１３は、次のシステム管理割り込みの発生に関する優先設定は行わずに、時系列にしたがって、次のシステム管理割り込みを発生させる。
【００５５】
本実施形態には、第１の実施形態の効果に加えて、マルチプロセッサシステムにおけるＯＳ運用中のＢＩＯＳ処理のスケジューリングを最適化することができる効果がある。その理由は、実行指示部１３が、プロセッサ２０乃至２１のシステム管理モードへの移行直前の状態がスリープモードである方を、次のシステム管理割り込みの発生に関して優先させるからである。
【００５６】
マルチプロセッサシステムにおいて、スリープモードであるプロセッサと、通常動作モードであるプロセッサが混在する場合、負荷の低いスリープモードのプロセッサのＢＩＯＳ処理を優先的に実行させた方が、ＯＳ運用への影響をより小さくすることが可能となる。
【００５７】
尚、本実施形態は、便宜上、プロセッサ数を２個としているが、プロセッサ数が３個以上の場合もあり、その場合も同様に、実行指示部１３は、次のシステム管理割り込みの発生に関し、システム管理モードへの移行直前の状態がスリープモードであるプロセッサを優先させる。
【００５８】
また、実行指示部１３は、プロセッサ２０乃至２１がＡＣＰＩ  Ｃ３の状態であるか否かを前述の優先設定の基準としているが、ＡＣＰＩ  Ｃ１乃至Ｃ２のいずれかを優先設定の基準とする場合もある。
＜第３の実施形態＞
次に、本願発明の第３の実施形態について図面を参照して詳細に説明する。
【００５９】
図６は本願発明の第３の実施形態のシステム管理モード処理時間最適化装置の構成を示すブロック図である。
【００６０】
本実施形態のシステム管理モード処理時間最適化装置１０は、プログラム記憶部１６と、判定部１２と、実行指示部１３とを包含している。
【００６１】
判定部１２は、プロセッサ２０がスリープモードの状態であるかを判定する。プログラム記憶部１６は、プロセッサ２０が、システム管理モードで実行するＢＩＯＳ等のプログラム１６０を記憶する。
【００６２】
実行指示部１３は、プロセッサ２０がＯＳ実行中に、プロセッサ２０をシステム管理モードへ移行させ、プログラム１６０を実行させた後、システム管理モードを終了させることを、プログラム実行が完了するまで、１サイクル以上繰り返し行う。実行指示部１３は、システム管理モードへの移行直前の判定部１２の判定結果を参照し、判定結果がスリープモードであるときは、スリープモードでないときと比較して、１サイクルあたりのプログラム１６０の実行時間を長くして、プログラム１６０をプロセッサ２０に実行させる。
【００６３】
本実施形態には、第１の実施形態と同様、ＯＳ運用に悪影響を与えずに、ＯＳ運用中におけるシステム管理モードのプログラム処理時間を最適化することができる効果がある。その理由は、実行指示部１３が、プロセッサ２０のシステム管理モードへの移行直前の状態が、スリープモードの場合は、スリープモードでない場合と比較して、上述の１サイクルにおける、プロセッサ２０がプログラム１６０を実行するための時間を長くとるからである。
【００６４】
実行指示部１３が上述の制御を行うために、ブログラム１６０が、第１の実施形態における分割プログラム１１０と同様に、処理を分割したプログラムの形をとる場合がある。あるいは、プログラム１６０が分割された形を取らずに、実行指示部１３が、プロセッサ２０がスリープモードであるか否かによって個別に設定された１サイクルあたりのＢＩＯＳ処理の最大継続時間に達すると、プロセッサ２０によるプログラム１１１の実行処理を一時停止させる場合もある。
【００６５】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されたものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００６６】
１    システム管理モード処理時間最適化システム
１０    システム管理モード処理時間最適化装置
１１    ＢＩＯＳ記憶部
１１０    分割プログラム
１２    判定部
１３    実行指示部
１４    測定部
１５    最大時間決定部
１６    プログラム記憶部
１６０    プログラム
２０乃至２１    プロセッサ
３０    ＯＳ記憶部
４０    メモリ
１００    プロセッサの負荷平均値と、プロセッサのシステム管理モードの最大継続時間との対応関係
２００    システム管理割り込み優先設定一覧
【図１】
2014089622.tif 000003
【図２】
2014089622.tif 000004
【図３】
2014089622.tif 000005
【図４】
2014089622.tif 000006
【図５】
2014089622.tif 000007
【図６】
2014089622.tif 000008