(57)【要約】      （修正有）【課題】システム管理モードを使用したシステム管理ファームウェア（ＢＩＯＳ）の特定処理にかかる時間を短縮せずとも、特定処理に起因する上位ソフトウェア（ＯＳ）における遅延に対して、好適に対応できる情報処理装置及び情報処理方法を提供する。【解決手段】サーバ１００は、ＢＩＯＳ１１０と、ＯＳ１２０とを備える。ＢＩＯＳの処理時間格納部１１６は、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とが格納される。格納領域通知部１１４は、その格納領域をＯＳに通知する。ＯＳの遅延判定部１２２は、処理時間取得部１２１が取得した、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とに基づいて、特定処理にて許容されない遅延があったかを判定する。要因判定部１２３は、特定処理にて許容されない遅延があったと遅延判定部が判定した場合に、ＯＳにおけるタイムアウトの要因が特定処理に起因すると判定する。【選択図】図１
2018156603.tif 000002
【特許請求の範囲】
【請求項１】
システム管理ファームウェアと、
前記システム管理ファームウェアの上位ソフトウェアと
を備え、
前記上位ソフトウェアは、
当該上位ソフトウェアにて許容されない遅延があった場合に、当該上位ソフトウェアにおける遅延の要因が、システム管理モードを使用した前記システム管理ファームウェアの特定処理に起因するかを判定する要因判定部
を有する情報処理装置。
【請求項２】
前記上位ソフトウェアは、
前記特定処理にて許容されない遅延があったかを判定する遅延判定部
を更に有し、
前記要因判定部は、前記特定処理にて許容されない遅延があったと前記遅延判定部が判定した場合に、前記上位ソフトウェアにおける遅延の要因が前記特定処理に起因すると判定する
請求項１に記載の情報処理装置。
【請求項３】
前記上位ソフトウェアは、
前記特定処理にかかる推定処理時間と、前記特定処理にかかった実処理時間とを取得する処理時間取得部
を更に有し、
前記遅延判定部は、前記処理時間取得部が取得した前記推定処理時間と前記実処理時間とに基づいて、前記特定処理にて許容されない遅延があったかを判定する
請求項２に記載の情報処理装置。
【請求項４】
前記システム管理ファームウェアは、
前記上位ソフトウェアからアクセス可能な格納領域であって前記推定処理時間と前記実処理時間とが格納されている格納領域を前記上位ソフトウェアに通知する格納領域通知部
を更に有し、
前記処理時間取得部は、前記システム管理ファームウェアから通知された格納領域に格納されている前記推定処理時間と前記実処理時間とを取得する
請求項３に記載の情報処理装置。
【請求項５】
前記システム管理ファームウェアは、
前記実処理時間を算出する実処理時間算出部
を更に有し、
前記格納領域通知部は、前記実処理時間算出部が算出した実処理時間が格納されている格納領域を前記上位ソフトウェアに通知する
請求項４に記載の情報処理装置。
【請求項６】
前記システム管理ファームウェアは、
前記推定処理時間を算出する推定処理時間算出部
を更に有し、
前記格納領域通知部は、前記推定処理時間算出部が算出した推定処理時間が格納されている格納領域を前記上位ソフトウェアに通知する
請求項４又は５に記載の情報処理装置。
【請求項７】
システム管理ファームウェアの上位ソフトウェアが、当該上位ソフトウェアにて許容されない遅延があった場合に、当該上位ソフトウェアにおける遅延の要因が、前記システム管理ファームウェアによるシステム管理の特定処理に起因するかを判定する要因判定段階
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
ＳＭＩ（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｒｕｐｔｓ）と称されるシステム管理割込みは、拡張機能を提供する場合に使用される。また、システム管理割込みは、システム管理作業にも使用することができる。システム管理割込みは、特殊な電気的信号行をプロセッサに直接使用する点がＮＭＩ（Ｎｏｎ−Ｍａｓｋａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ）と似ている。システム管理割込みは、一般的にはマスクできない。
【０００３】
プロセッサは、システム管理割込みを受け取ると、ＳＭＭ（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｍｏｄｅ）と称されるシステム管理モードに入る。このモードでは、非常に低いレベルのハンドラールーチンが実行されシステム管理割込みを処理する。システム管理モードは、一般的にはＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やＥＦＩ（Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）といったシステム管理ファームウェアから直接提供される。
【０００４】
システム管理割込みは、システム管理ファームウェアの上位のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やドライバといった上位ソフトウェアに直接かかわることなく発生するため、上位ソフトウェアの運用に悪影響を及ぼす場合がある。不完全な記述のシステム管理割込み処理ルーティンは、長時間かかることがある。そのため、上位ソフトウェアは、必要なときにハンドラーを先取りすることができなくなる。この状態は、正しくチューニングが行われ高い応答性を持つシステムであっても定期的に高遅延を見せる原因となる。このように、システム管理モードでは、システム管理ファームウェアのみが動作可能で、上位ソフトウェアが全く動作不可能となる。
【０００５】
また、システム管理モードは、上位ソフトウェアのランタイムのうち、唯一、システム管理ファームウェアのコードを独立して動作させることが可能なモードでもある。そのため、システム管理ファームウェアは、プラットフォーム特有の障害処理、不揮発性メモリの書き込み、不揮発性メモリのガベージコレクション、ライブメモリダンプ機能といった、システム管理ファームウェアとしての基本機能のみならず付加価値機能に至るまで、多岐にわたる特定処理を実行することができる。
【０００６】
システム管理モードを使用したシステム管理ファームウェアの特定処理にかかる時間は、例えばＲＡＳ（Ｒｅｌｉａｂｉｌｉｔｙ  Ａｖａｉｌａｂｉｌｉｔｙ  Ｓｅｒｖｉｃｅａｂｉｌｉｔｙ）機能の高可用性、高信頼性の向上に伴う処理量の増大に起因して、長くなる可能性がある。
【０００７】
例えば、１０ギガビット毎秒の通信環境では、システム管理モードの時間が１ミリ秒であれば、約１０メガビットのパケットロスとなる。同一時間におけるパケットロス量は、今後、通信技術の向上に伴い、更に増大する。
【０００８】
このような背景に関連する技術として、特許文献１には、ＯＳの運用に悪影響を与えずに、ＯＳの運用中におけるシステム管理モードのプログラム処理時間を最適化できる装置が開示されている。特許文献１に記載の装置は、システム管理モードで実行するプログラムを格納する。そして、この装置は、プロセッサがスリープモードの状態であるかを判定する。そして、この装置は、プロセッサがＯＳの実行中に、プロセッサをシステム管理モードへ移行させ、プログラムの一部を実行させた後、システム管理モードを終了させることを、プログラムの実行が完了するまで、１サイクル以上繰り返し行い、システム管理モードへの移行直前の判定結果を参照し、スリープモードであるときには、スリープモードでないときと比較して、１サイクルあたりのプログラムの実行時間を長くして、プログラムをプロセッサに実行させる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１４−０８９６２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１に記載の技術では、システム管理モードを使用したシステム管理ファームウェアの特定処理にかかる時間を短縮することが考慮されている。しかしながら、実情は、このような特定処理にかかる時間の短縮が限界となりつつある。
【００１１】
この発明は、上記実情に鑑みて成されたものであり、システム管理モードを使用したシステム管理ファームウェアの特定処理にかかる時間を短縮せずとも、このような特定処理に起因する上位ソフトウェアにおける遅延に対して、好適に対応することができる情報処理装置及び情報処理方法の提供を目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本願発明に係る情報処理装置は、システム管理ファームウェアと、システム管理ファームウェアの上位ソフトウェアとを備え、上位ソフトウェアは、当該上位ソフトウェアにて許容されない遅延があった場合に、当該上位ソフトウェアにおける遅延の要因が、システム管理モードを使用したシステム管理ファームウェアの特定処理に起因するかを判定する要因判定部を有する。
【００１３】
また、上記発明を達成するため、本願発明に係る情報処理方法は、システム管理ファームウェアの上位ソフトウェアが、当該上位ソフトウェアにて許容されない遅延があった場合に、当該上位ソフトウェアにおける遅延の要因が、システム管理ファームウェアによるシステム管理の特定処理に起因するかを判定する要因判定段階を含む。
【発明の効果】
【００１４】
このような構成においては、システム管理モードを使用したシステム管理ファームウェアの特定処理にかかる時間を短縮せずとも、このような特定処理に起因する上位ソフトウェアにおける遅延に対して、好適に対応することができる。
【図面の簡単な説明】
【００１５】
【図１】この実施の形態における情報処理装置の構成の一例を示す図である。
【図２】特定処理情報格納部に格納されている情報の一例をテーブル形式で示す図である。
【図３】処理時間格納部に格納される情報の一例をテーブル形式で示す図である。
【図４】システム管理モードを使用した特定処理に伴うＢＩＯＳの処理の一例を示すフローチャートである。
【図５】ＢＩＯＳからの格納領域の通知に伴うＯＳの処理の一例を示すフローチャートである。
【図６】ＯＳにてタイムアウトが検知されたこと伴うＯＳの処理の一例を示すフローチャートである。
【図７】最小構成の情報処理装置の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照しつつ、本発明の一実施形態を詳細に説明する。図１は、この実施の形態におけるサーバ１００の構成の一例を示す図である。ここで、サーバ１００とは、コンピュータネットワークにおいて、他のコンピュータに対し、自身の持っている機能やサービス、データ等を提供するコンピュータである。なお、サーバ１００は、この発明における「情報処理装置」の一例である。
【００１７】
サーバ１００は、ＢＩＯＳ１１０と、ＯＳ１２０とを備える。ここで、ＢＩＯＳ１２０とは、サーバ１００の主基板等に格納され、起動時のＯＳ１２０の読み込みや、接続された装置・機器に対する基本的な入出力制御等を行うシステム管理ファームウェアである。一方、ＯＳ１２０とは、機器の基本的な管理や制御のための機能や、多くのソフトウェアが共通して利用する基本的な機能等を実装し、システム全体を管理するソフトウェアである。なお、ＢＩＯＳ１１０は、この発明における「システム管理ファームウェア」の一例である。一方、ＯＳ１２０は、この発明における「上位ソフトウェア」の一例である。
【００１８】
ＢＩＯＳ１１０は、特定処理実行部１１１と、推定処理時間算出部１１２と、実処理時間算出部１１３と、格納領域通知部１１４と、特定処理情報格納部１１５と、処理時間格納部１１６とを有する。
【００１９】
特定処理実行部１１１は、システム管理モードを使用した特定処理を実行する。システム管理モードは、電源管理やハードウェア制御を行うための専用モードである。一方、特定処理には、プラットフォーム特有の障害処理、不揮発性メモリの書き込み、不揮発性メモリのガベージコレクション、ライブメモリダンプ機能といった、システム管理ファームウェアとしての基本機能のみならず付加価値機能に至るまで、多岐にわたる処理が含まれる。
【００２０】
推定処理時間算出部１１２は、特定処理にかかる推定処理時間を算出する。
【００２１】
実処理時間算出部１１３は、特定処理にかかった実処理時間を算出する。
【００２２】
格納領域通知部１１４は、ＯＳ１２０からアクセス可能な格納領域であって、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とが格納されている格納領域をＯＳ１２０に通知する。例えば、格納領域通知部１１４は、推定処理時間算出部１１２が算出した推定処理時間が格納されている格納領域をＯＳ１２０に通知する。また、例えば、格納領域通知部１１４は、実処理時間算出部１１３が算出した実処理時間が格納されている格納領域をＯＳ１２０に通知する。
【００２３】
特定処理情報格納部１１５には、特定処理に関する情報が格納されている。
【００２４】
処理時間格納部１１６は、ＯＳ１２０からアクセス可能な格納領域である。処理時間格納部１１６には、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とが格納される。
【００２５】
ＯＳ１２０は、処理時間取得部１２１と、遅延判定部１２２と、要因判定部１２３と、処理時間格納部１２４とを有する。
【００２６】
処理時間取得部１２１は、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とを取得する。例えば、処理時間取得部１２１は、ＢＩＯＳ１１０から通知された格納領域に格納されている、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とを取得する。
【００２７】
遅延判定部１２２は、特定処理にて許容されない遅延があったかを判定する。例えば、遅延判定部１２２は、処理時間取得部１２１が取得した、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とに基づいて、特定処理にて許容されない遅延があったかを判定する。
【００２８】
要因判定部１２３は、ＯＳ１２０にてタイムアウトがあった場合に、ＯＳ１２０におけるタイムアウトの要因が、システム管理モードを使用したＢＩＯＳ１１０の特定処理に起因するかを判定する。例えば、要因判定部１２３は、特定処理にて許容されない遅延があったと遅延判定部１２２が判定した場合に、ＯＳ１２０におけるタイムアウトの要因が特定処理に起因すると判定する。ここで、タイムアウトとは、処理やデータ転送に時間がかかり過ぎるときに、途中で打ち切って終了することである。なお、タイムアウトは、この発明における「上位ソフトウェアにて許容されない遅延」、「上位ソフトウェアにおける遅延」の一例である。
【００２９】
処理時間格納部１２４には、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とが格納される。
【００３０】
図２は、特定処理情報格納部１１５に格納されている情報の一例をテーブル形式で示す図である。特定処理情報格納部１１５には、識別子、特定処理内容、推定処理時間の各情報が対応付けられて格納されている。
【００３１】
識別子の情報は、各特定処理を一意に識別するための識別符号である。
【００３２】
特定処理内容の情報は、識別子によって識別される特定処理の内容を示す情報である。図２に示す例では、例えば、識別子「Ｔ１」によって識別される特定処理の内容が「処理Ａ」であることを示している。
【００３３】
推定処理時間の情報は、特定処理にかかる推定処理時間を示す情報である。図２に示す例では、例えば、識別子「Ｔ１」によって識別される「処理Ａ」の特定処理にかかる推定処理時間が「５ｍｓ」であることを示している。
【００３４】
図３は、処理時間格納部１１６に格納される情報の一例をテーブル形式で示す図である。処理時間格納部１１６には、識別子、システム管理モード開始時刻、推定総処理時間、実処理時間の各情報が対応付けられて格納される。
【００３５】
識別子の情報は、各特定処理の履歴を一意に識別するための識別符号である。
【００３６】
システム管理モード開始時刻の情報は、システム管理モードに遷移した時刻を示す情報である。図３に示す例では、例えば、識別子「Ｓ１」によって識別される履歴に対応する特定処理の開始時刻が「２０１７／２／８  ２：００：２３．２３」であることを示している。
【００３７】
推定総処理時間の情報は、特定処理にかかる推定総処理時間を示す情報である。図３に示す例では、例えば、識別子「Ｓ１」によって識別される履歴に対応する特定処理にかかる推定総処理時間が「３０ｍｓ」であることを示している。
【００３８】
実処理時間の情報は、特定処理にかかった実処理時間を示す情報である。図３に示す例では、例えば、識別子「Ｓ１」によって識別される履歴に対応する特定処理にかかった実処理時間が「２０ｍｓ」であることを示している。
【００３９】
図４は、システム管理モードを使用した特定処理に伴うＢＩＯＳ１１０の処理の一例を示すフローチャートである。図４の動作フローの説明では、適宜、図１から図３を参照する。
【００４０】
プロセッサは、何らかの理由によりシステム管理割込みを受信すると、動作モードをシステム管理モードに遷移させる。システム管理モードに遷移すると（ステップＳ１０１；ＹＥＳ）、ＢＩＯＳ１１０の特定処理実行部１１１は、処理時間格納部１１６における空きエントリーに、システム管理モードの開始時刻を格納する（ステップＳ１０２）。ステップＳ１０２の処理では、特定処理実行部１１１は、例えば、ハードウェア・クロックから取得した現在時刻を、システム管理モードの開始時刻として格納すればよい。このようにして、ＢＩＯＳ１１０の処理時間格納部１１６には、図３に示すようなシステム管理モード開始時刻の情報が格納される。
【００４１】
そして、特定処理実行部１１１は、システム管理モードを使用して実行すべき特定処理のうち、未実行の特定処理があるかを判定する（ステップＳ１０３）。ここで、システム管理モードを使用して実行すべき特定処理は、システム管理モードに遷移する契機となったシステム管理割込みの内容によって異なる。ステップＳ１０３の処理では、特定処理実行部１１１は、システム管理モードに遷移する契機となったシステム管理割込みの内容に応じて、システム管理モードを使用して実行すべき特定処理を特定すればよい。
【００４２】
ステップＳ１０３の処理にて未実行の特定処理がある場合（ステップＳ１０３；ＹＥＳ）、特定処理実行部１１１は、未実行の特定処理を実行するにあたり、その特定処理の内容を、推定処理時間算出部１１２に通知する。ここで、複数の未実行の特定処理があり、これらの特定処理を数回に分けて実行する場合、特定処理実行部１１１は、これから実行する特定処理の内容のみを通知すればよい。
【００４３】
ＢＩＯＳ１１０の推定処理時間算出部１１２は、特定処理実行部１１１からの通知を受けると、特定処理にかかる推定処理時間を算出し、算出された推定処理時間に基づいて、処理時間格納部１１６における推定総処理時間の情報を更新する（ステップＳ１０４）。ステップＳ１０４の処理では、推定処理時間算出部１１２は、例えば、特定処理情報格納部１１５に格納されている情報のうち、特定処理実行部１１１から通知された特定処理の内容と一致する特定処理内容の情報に対応付けられて格納されている、推定処理時間の情報を読み出す。このとき、特定処理実行部１１１から複数の特定処理の内容が通知されている場合、推定処理時間算出部１１２は、通知された全ての特定処理に対応する推定処理時間の情報を全て読み出し、その全ての推定処理時間を加算する。そして、推定処理時間算出部１１２は、このようにして得られた推定処理時間に基づいて、処理時間格納部１１６における、ステップＳ１０２の処理にて格納されたシステム管理モードの開始時刻に対応付けられた推定総処理時間の情報を更新する。このとき、更新対象の推定総処理時間の情報がＮｕｌｌであれば、推定処理時間算出部１１２は、算出等により得られた推定処理時間をそのまま推定総処理時間として格納すればよい。一方、更新対象の推定総処理時間の情報がＮｕｌｌでなければ、推定処理時間算出部１１２は、既に格納されている推定総処理時間に対して、算出等により得られた推定処理時間を加算して得られる推定総処理時間を格納すればよい。このようにして、ＢＩＯＳ１１０の処理時間格納部１１６には、図３に示すような推定総処理時間の情報が格納される。そして、推定処理時間算出部１１２は、処理時間格納部１１６における推定総処理時間の情報を更新すると、その旨を特定処理実行部１１１に通知する。
【００４４】
特定処理実行部１１１は、推定処理時間算出部１１２からの通知を受けると、未実行の特定処理を実行した後（ステップＳ１０５）、ステップＳ１０３の処理を再度実行する。
【００４５】
ステップＳ１０３の処理にて未実行の特定処理がない場合（ステップＳ１０３）、即ち、システム管理モードを使用して実行すべき特定処理を全て実行した場合、特定処理実行部１１１は、その旨を実処理時間算出部１１３に通知する。
【００４６】
ＢＩＯＳ１１０の実処理時間算出部１１３は、特定処理実行部１１１からの通知を受けると、特定処理にかかった実処理時間を算出し、算出された実処理時間の情報を処理時間格納部１１６に格納して（ステップＳ１０６）、図４に示す処理を終了する。ステップＳ１０６の処理では、実処理時間算出部１１３は、例えば、処理時間格納部１１６における、ステップＳ１０２の処理にて格納されたシステム管理モードの開始時刻を読み出す。また、実処理時間算出部１１３は、ハードウェア・クロックから現在時刻を取得する。そして、実処理時間算出部１１３は、処理時間格納部１１６から読み出したシステム管理モードの開始時刻から、ハードウェア・クロックから取得した現在時刻までの時間を、特定処理にかかった実処理時間として算出する。そして、実処理時間算出部１１３は、算出した実処理時間の情報を、処理時間格納部１１６における、ステップＳ１０２の処理にて格納されたシステム管理モードの開始時刻に対応付けて格納する。このようにして、ＢＩＯＳ１１０の処理時間格納部１１６には、図３に示すような実処理時間の情報が格納される。
【００４７】
なお、ステップＳ１０２以降の処理は、動作モードがシステム管理モードに遷移しない場合（ステップＳ１０１；ＮＯ）、実行されない。
【００４８】
図５は、ＢＩＯＳ１１０からの格納領域の通知に伴うＯＳ１２０の処理の一例を示すフローチャートである。図５の動作フローの説明では、適宜、図１から図４を参照する。
【００４９】
ＢＩＯＳ１１０の格納領域通知部１１４は、図４に示すステップＳ１０６の処理にて実処理時間の情報が処理時間格納部１１６に格納されると、あるいは、ＯＳ１２０からの通知要求を受けると、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とが格納されている格納領域をＯＳ１２０に通知する。ここで、格納領域通知部１１４は、処理時間格納部１１６のアドレスを通知すればよい。
【００５０】
ＯＳ１２０の処理時間取得部１２１は、ＢＩＯＳ１１０からの格納領域の通知を受けると、その格納領域にアクセスして、処理時間格納部１１６に格納されている、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とを含む情報を取得して（ステップＳ２０２）、取得した情報を、処理時間格納部１２４に格納する（ステップＳ２０３）。このようにして、ＯＳ１２０の処理時間格納部１２４には、図３に示すＢＩＯＳ１１０の処理時間格納部１１６に格納されている情報と同様の情報が格納される。
【００５１】
図６は、ＯＳ１２０にてタイムアウトが検知されたこと伴うＯＳ１２０の処理の一例を示すフローチャートである。図６の動作フローの説明では、適宜、図１から図５を参照する。
【００５２】
ＯＳ１２０は、処理やデータ転送に時間がかかり過ぎるときに、タイムアウト処理を実行することがある。ＯＳ１２０は、タイムアウト処理を実行すると（ステップＳ３０１；ＹＥＳ）、ＲＡＭの所定領域に設けられたリトライカウンタの格納値であるリトライカウント値を、１加算するように更新し（ステップＳ３０２）、更新後のリトライカウント値が特定値に達したか否かを判定する（ステップＳ３０３）。ここで、リトライカウント値と比較される特定値は、タイムアウト処理が実行された対象の処理やデータ転送をリトライすべき回数であり、ＯＳ１２０にて実行される処理やデータ転送の種類毎に規定されていればよい。
【００５３】
ステップＳ３０３の処理にてリトライカウント値が特定値に達していない場合、ＯＳ１２０は、タイムアウト処理が実行された対象の処理やデータ転送のリトライ処理を実行する（ステップＳ３０４）。
【００５４】
ステップＳ３０３にて実行されたリトライ処理によって、処理やデータ転送の処理が正常に実行され、タイムアウト処理が実行されなければ（ステップＳ３０１；ＮＯ）、ＯＳ１２０は、ステップＳ３０２以降の処理を再び実行することなく、図６に示す処理を終了する。
【００５５】
ステップＳ３０３の処理にてリトライカウント値が特定値に達した場合（ステップＳ３０３；ＹＥＳ）、ＯＳ１２０の遅延判定部１２２は、ＢＩＯＳ１１０によって実行された特定処理にて許容されない遅延があったかを判定する（ステップＳ３０５）。ステップＳ３０５の処理では、遅延判定部１２２は、例えば、ＯＳ１２０の処理時間格納部１２４に格納されている、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とに基づいて、特定処理にて許容されない遅延があったかを判定すればよい。このとき、遅延判定部１２２は、タイムアウト処理が実行された対象の処理やデータ転送が開始されてから、そのタイムアウト処理が実行されるまでの特定期間に実行された特定処理を対象にした判定を行えばよい。特定処理の実行期間は、処理時間格納部１２４に格納されている情報のうち、システム管理モード開始時刻の情報と、実処理時間の情報とによって特定することができる。そして、遅延判定部１２２は、特定期間に実行された特定処理があれば、その特定処理にて許容されない遅延があったかを判定する。例えば、遅延判定部１２２は、その特定処理にかかる推定総処理時間と、その特定処理にかかった実処理時間とを比較して、実処理時間が推定総処理時間よりも長ければ、その特定処理にて許容されない遅延があったと判定すればよい。また例えば、遅延判定部１２２は、推定総処理時間に対する実処理時間の長さが所定割合よりも長ければ、その特定処理にて許容されない遅延があったと判定してもよい。また例えば、遅延判定部１２２は、特定処理の種類に応じて、その判定基準や判定方法を異ならせてもよい。また例えば、遅延判定部１２２は、複数の判定基準や判定方法による複数回の判定を行って、複数の判定結果に基づいて、最終的な判定を行うようにしてもよい。例えば、そして、遅延判定部１２２は、ＢＩＯＳ１１０によって実行された特定処理にて許容されない遅延があったかを判定すると、その判定結果を要因判定部１２３へ通知する。
【００５６】
ＯＳ１２０の要因判定部１２３は、遅延判定部１２２からの通知を受けると、その判定結果に基づいて、ＯＳ１２０におけるタイムアウトの要因が、システム管理モードを使用したＢＩＯＳ１１０の特定処理に起因するかを判定する。
【００５７】
ステップＳ３０５の処理による判定結果が、「特定処理にて許容されない遅延はなかった」との判定結果である場合（ステップＳ３０５；ＮＯ）、要因判定部１２３は、ＯＳ１２０におけるタイムアウトの要因が、システム管理モードを使用したＢＩＯＳ１１０の特定処理に起因するものではないと判定し（ステップＳ３０６）、図６に示す処理を終了する。
【００５８】
このように、ＯＳ１２０は、ＯＳ１２０におけるタイムアウトの要因が、システム管理モードを使用したＢＩＯＳ１１０の特定処理に起因するものではなく、何らかの障害によるものであることを推定できることから、タイムアウト処理が実行された対象の処理やデータ転送について、不要なリトライ処理を実行しないようにすることができる。
【００５９】
一方、ステップＳ３０５の処理による判定結果が、「特定処理にて許容されない遅延があった」との判定結果である場合（ステップＳ３０５；ＹＥＳ）、要因判定部１２３は、ＯＳ１２０におけるタイムアウトの要因が、システム管理モードを使用したＢＩＯＳ１１０の特定処理に起因するものであると判定する（ステップＳ３０７）。
【００６０】
ステップＳ３０７の処理を実行した後、ＯＳ１２０は、リトライカウント値を１減算するように更新し（ステップＳ３０８）、タイムアウト処理が実行された対象の処理やデータ転送のリトライ処理を実行する（ステップＳ３０４）。
【００６１】
このように、ＯＳ１２０は、ＯＳ１２０におけるタイムアウトの要因が、システム管理モードを使用したＢＩＯＳ１１０の特定処理に起因するものであった場合、リトライ処理を実行すれば、タイムアウト処理が実行された対象の処理やデータ転送が正しく実行される可能性が高いことから、リトライ回数のカウントを行うことなくリトライ処理を実行することにより、特定処理に起因するタイムアウトに対して、好適に対応することができる。
【００６２】
以上説明したように、情報処理装置１００は、ＢＩＯＳ１１０と、ＯＳ１２０とを備える。そして、ＯＳ１２０は、ＯＳ１２０にてタイムアウトがあった場合に、ＯＳ１２０におけるタイムアウトの要因が、システム管理モードを使用したＢＩＯＳ１１０の特定処理に起因するかを判定する要因判定部１２３を有する。これにより、システム管理モードを使用したＢＩＯＳ１１０の特定処理にかかる時間を短縮せずとも、このような特定処理に起因するＯＳ１２０における遅延に対して、好適に対応することができる。
【００６３】
また、ＯＳ１２０は、特定処理にて許容されない遅延があったかを判定する遅延判定部１２２を更に有する。そして、要因判定部１２３は、特定処理にて許容されない遅延があったと遅延判定部１２２が判定した場合に、ＯＳ１２０にける遅延の要因が特定処理に起因すると判定する。これにより、特定処理にて許容されない遅延があったかをＢＩＯＳ１１０で判定する必要がないため、システム管理モードにおけるＢＩＯＳ１１０の処理負荷を抑制することができる。
【００６４】
また、ＯＳ１２０は、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とを取得する処理時間取得部１２１を更に有する。そして、遅延判定部１２２は、処理時間取得部１２１が取得した推定処理時間と実処理時間とに基づいて、特定処理にて許容されない遅延があったかを判定する。これにより、ＯＳ１２０は、サーバ管理者の手を煩わせることなく、特定処理にて許容されない遅延があったかを自立的に判定することができる。
【００６５】
また、ＢＩＯＳ１１０は、ＯＳ１２０からアクセス可能な格納領域であって、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とが格納されている格納領域をＯＳ１２０に通知する格納領域通知部１１４を更に有する。そして、処理時間取得部１２１は、ＢＩＯＳ１１０から通知された格納領域に格納されている推定処理時間と実処理時間とを取得する。これにより、ＯＳ１２０は、システム管理モードが実行されたかを知ることができなくても、システム管理モードを使用したＢＩＯＳ１１０の特定処理に関する情報を取得することができる。
【００６６】
また、ＢＩＯＳ１１０は、特定処理にかかった実処理時間を算出する実処理時間算出部１１３を更に有する。そして、格納領域通知部１１４は、実処理時間算出部１１３が算出した実処理時間が格納されている格納領域をＯＳ１２０に通知する。これにより、特定処理にて許容されない遅延があったかを正確に判定することができる。
【００６７】
また、ＢＩＯＳ１１０は、推定処理時間を算出する推定処理時間算出部１１１を更に有し、格納領域通知部１１４は、推定処理時間算出部１１１が算出した推定処理時間が格納されている格納領域をＯＳ１２０に通知する。これにより、特定処理にて許容されない遅延があったかを正確に判定することができる。
【００６８】
この発明は、上記の実施の形態に限定されず、様々な変形及び応用が可能である。例えば、サーバ１００は、上記の実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、少なくとも１つの課題を解決できるように、上記の実施の形態で説明した一部の構成を備えたものであってもよい。
【００６９】
上記の実施の形態では、この発明における「情報処理装置」としてサーバ１００を例にとって説明した。しかしながら、この発明における「情報処理装置」は、システム管理ファームウェアと、システム管理ファームウェアの上位ソフトウェアを備えたものであればよく、例えば、個人向けの汎用コンピュータであるパーソナルコンピュータや、企業の情報システム等で用いられる大規模・高性能コンピュータであるメインフレーム、科学技術計算等に用いる超高性能コンピュータであるスーパーコンピュータ等であってもよい。また、この発明における「情報処理装置」は、システム管理ファームウェアと、システム管理ファームウェアの上位ソフトウェアとを備えた、携帯電話、スマートフォン、タブレット端末、各種の通信機器、ビデオレコーダ、デジタルテレビ、デジタルカメラ、ゲーム機、電子制御の家電製品や産業機械といった、何らかの形でコンピュータの一種が組み込まれて、情報やデータを扱う電気機械であるコンピュータ応用製品であってもよい。
【００７０】
上記の実施の形態では、この発明における「システム管理ファームウェア」としてＢＩＯＳ１１０を例にとって説明した。しかしながら、この発明における「システム管理ファームウェア」は、本体内部の回路や装置等の基本的な制御を司る機能を持ったものであればよく、例えば、ＥＦＩ（Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）やＵＥＦＩ（Ｕｎｉｆｉｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）等であってもよい。
【００７１】
上記の実施の形態では、この発明における「上位ソフトウェア」としてＯＳ１２０を例にとって説明した。しかしながら、この発明における「上位ソフトウェア」は、ＢＩＯＳ、ＥＦＩ、ＵＥＦＩといったシステム管理ファームウェアの上位に当たるものであればよく、例えば、デバイスドライバやテストドライバといったドライバ等であってもよい。
【００７２】
上記の実施の形態では、ＢＩＯＳ１１０からの格納領域の通知を契機にして、ＯＳ１２０が特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とを取得するものとして説明した。しかしながら、ＯＳ１２０が特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とを取得する契機は、これに限られない。例えば、ＯＳ１２０からアクセス可能な格納領域は、不変の格納領域であってもよい。即ち、ＢＩＯＳ１１０は、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とを、システム管理モードを使用する度に異なる格納領域ではなく、常に同じ格納領域に格納するようにしてもよい。そして、ＯＳ１２０は、ＢＩＯＳ１１０からの通知によらず、ＯＳ１２０にてタイムアウトがあったことを契機にして、ＢＩＯＳ１１０の既知の格納領域にアクセスして、特定処理にかかる推定処理時間と、特定処理にかかった実処理時間とを取得するようにしてもよい。
【００７３】
上記の実施の形態では、この発明における「上位ソフトウェアにて許容されない遅延」、「上位ソフトウェアにおける遅延」としてタイムアウトを例にとって説明した。しかしながら、この発明における「上位ソフトウェアにて許容されない遅延」、「上位ソフトウェアにおける遅延」は、タイムアウトに限られず、例えば、タイムアウトとはならないまでも、その処理やデータ転送にかかる標準的な処理時間、あるいは、推定処理時間よりも、予め定められた特定時間が経過したこと等であってもよい。
【００７４】
上記の実施の形態では、この発明における「情報処理装置」について分かり易く説明することを目的として、この発明における「情報処理装置」にて採用し得る全ての構成を含む実施の形態について説明した。しかしながら、この発明における最小構成の「情報処理装置」に対応する実施の形態のサーバ１００は、図７に示すように、ＢＩＯＳ１１０と、ＯＳ１２０とを備え、ＯＳ１２０が要因判定部１２３を有していればよい。
【符号の説明】
【００７５】
１００  サーバ
１１０  ＢＩＯＳ
１２０  ＯＳ
１２３  要因判定部
【図１】
2018156603.tif 000003
【図２】
2018156603.tif 000004
【図３】
2018156603.tif 000005
【図４】
2018156603.tif 000006
【図５】
2018156603.tif 000007
【図６】
2018156603.tif 000008
【図７】
2018156603.tif 000009