(57)【要約】【課題】演算プロセッサと制御プロセッサとの間の通信頻度を低減することが可能な情報処理装置を提供すること。【解決手段】制御処理部と、ＯＳ及びファームウェアが動作する演算処理部とを備える情報処理装置が提供される。制御処理部は、各ハードウェアの状態情報が記録される第１のキャッシュと、第１のキャッシュの複数の状態情報を演算処理部に伝送する状態情報伝送部とを有する。ファームウェアは、複数の状態情報を制御処理部から取得する状態情報取得部と、複数の状態情報、及び当該複数の状態情報の取得時刻が記録される第２のキャッシュと、ＯＳからの要求時刻と取得時刻との時間差が所定値よりも小さいか否かを判定する時間差判定部と、その判定結果に応じて、再び状態情報を取得して応答するか、又は、第２のキャッシュに記録された状態情報を応答するかを決定する応答決定部とを有する。【選択図】図７
2009251894.tif 000002
【特許請求の範囲】
【請求項１】
演算プロセッサ上で動作するオペレーティングシステムから所定のハードウェアに関する状態情報が要求された場合に、当該状態情報を含む複数の状態情報を制御プロセッサから取得する状態情報取得部と、
前記状態情報取得部により取得された前記複数の状態情報、及び当該複数の状態情報の取得時刻を所定のメモリに記録する状態情報記録部と、
前記オペレーティングシステムから状態情報が要求された要求時刻と、前記取得時刻との時間差が所定値よりも小さいか否かを判定する時間差判定部と、
前記時間差判定部による判定結果に応じて、前記状態情報取得部により再び前記状態情報を取得して前記オペレーティングシステムに応答するか、又は前記所定のメモリに記録された状態情報を前記オペレーティングシステムに応答するかを決定する応答決定部と、
を有する、情報処理装置。
【請求項２】
前記制御プロセッサは、
制御可能な複数のハードウェアの各々に関する状態情報を内部又は外部のメモリに記録する状態情報記録部と、
前記演算プロセッサの要求に応じて前記内部又は外部のメモリに記録された複数の状態情報を前記演算プロセッサに伝送する状態情報伝送部と、
を有する、請求項１に記載の情報処理装置。
【請求項３】
前記応答決定部は、前記オペレーティングシステムから要求された状態情報が前記所定のメモリに存在しない場合に前記状態情報取得部により再び前記状態情報を取得して前記オペレーティングシステムに応答することを決定する、請求項２に記載の情報処理装置。
【請求項４】
前記応答決定部は、前記時間差判定部による判定結果に基づき、
前記時間差が所定値よりも大きい場合に、前記状態情報取得部により再び前記状態情報を取得して前記オペレーティングシステムに応答することを決定し、
前記時間差が所定値よりも小さい場合に前記所定のメモリに記録された状態情報を前記オペレーティングシステムに応答することを決定する、請求項３に記載の情報処理装置。
【請求項５】
前記所定値は、前記制御プロセッサの内部又は外部のメモリに記録された状態情報の更新周期より短い時間に設定される、請求項１に記載の情報処理装置。
【請求項６】
情報処理装置に搭載され、複数のハードウェアを制御する制御プロセッサにより、
前記各ハードウェアの状態を示す状態情報が前記制御プロセッサの内部又は外部にあるメモリに記録されるステップと、
前記演算プロセッサの要求に応じて前記メモリに記録された複数の状態情報が前記演算プロセッサに対して伝送される状態情報伝送ステップと、
を含み、
前記情報処理装置に搭載され、オペレーティングシステム及びファームウェアが動作する演算プロセッサのファームウェアにより、
前記オペレーティングシステムから要求された前記状態情報が含まれる複数の前記状態が情報前記制御プロセッサから取得される状態情報取得ステップと、
前記状態情報取得ステップで取得された前記複数の状態情報、及び当該複数の状態情報の取得時刻が所定のメモリに記録されるステップと、
前記オペレーティングシステムから状態情報が要求された要求時刻と、前記取得時刻との時間差が所定値よりも小さいか否かが判定される時間差判定ステップと、
前記時間差判定ステップの判定結果に応じて、前記状態情報取得ステップと同様にして再び前記状態情報が取得して前記オペレーティングシステムに応答するか、又は、前記所定のメモリに記録された状態情報を前記オペレーティングシステムに応答するかが決定される応答決定ステップと、
を含む、ファームウェアによる情報管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、及びファームウェアによる情報管理方法に関する。
【背景技術】
【０００２】
近年、半導体チップの製造技術や高速通信の技術が高度に発展してきており、高度で複雑な演算を短時間で処理することが可能な演算チップや、これを搭載した高性能な情報処理装置が開発されている。こうした情報処理装置は、例えば、映像データの３次元レンダリングや科学技術分野における数値シミュレーション等の高負荷演算に利用される。こうした情報処理装置に搭載される演算チップは、高クロックで動作し、それ単体で見ると非常に高い演算性能を有している。
【０００３】
ところが、この演算チップに接続されるデバイスの動作速度や、その接続に利用されるバスの帯域幅等がボトルネックとなり、演算チップの高い性能が発揮されないことがある。そのため、演算チップに直接又は間接的に接続されたデバイスへのアクセス制御を適切に管理し、演算チップの性能を最大限に発揮させる技術が求められている。
【０００４】
これに関し、例えば、下記の特許文献１に記載のコンピュータ・システムのように、演算チップ（プロセッサ）の他に、Ｉ／Ｏ装置等を制御する制御チップ（サービスプロセッサ）を設けるシステム構成が考えられている。但し、同文献１のコンピュータ・システムは、サービスプロセッサを利用して検査停止エラーの解析及び処理を行うシステムに関するものである。
【０００５】
【特許文献１】特開平１０−２８３２１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記の通り、演算チップの性能をより効率的に発揮させるために、システム全体の効率化が求められている。上記の文献１に記載のコンピュータ・システムのように、演算チップと制御チップとが別々に設けられている場合に、そのチップ間における通信処理がシステム性能の低下に起因する場合がある。特に、演算チップと制御チップとの間に、ブリッジチップのようなハードウェアが介在していたり、チップ間を接続するバスの帯域幅が狭かったりすることで、大きく演算チップの性能が低下してしまうことがある。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、演算チップと制御チップとの間の通信頻度を低減させることで、システム性能を向上させることが可能な、新規かつ改良された情報処理装置、及びファームウェアによる情報管理方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、複数のハードウェアを制御する次のような制御プロセッサと、オペレーティングシステム及びファームウェアが動作する次のような演算プロセッサと、を備える情報処理装置が提供される。
【０００９】
上記の情報処理装置は、演算プロセッサ上で動作するオペレーティングシステムから所定のハードウェアに関する状態情報が要求された場合に、当該状態情報を含む複数の状態情報を制御プロセッサから取得する状態情報取得部と、前記状態情報取得部により取得された前記複数の状態情報、及び当該複数の状態情報の取得時刻を所定のメモリに記録する状態情報記録部と、前記オペレーティングシステムから状態情報が要求された要求時刻と、前記取得時刻との時間差が所定値よりも小さいか否かを判定する時間差判定部と、前記時間差判定部による判定結果に応じて、前記状態情報取得部により再び前記状態情報を取得して前記オペレーティングシステムに応答するか、又は前記所定のメモリに記録された状態情報を前記オペレーティングシステムに応答するかを決定する応答決定部と、を有する。
【００１０】
また、前記制御プロセッサは、制御可能な複数のハードウェアの各々に関する状態情報を内部又は外部のメモリに記録する状態情報記録部と、前記演算プロセッサの要求に応じて前記内部又は外部のメモリに記録された複数の状態情報を前記演算プロセッサに伝送する状態情報伝送部とを有するものであってもよい。
【００１１】
より詳細に述べると、前記演算プロセッサのファームウェアは、前記オペレーティングシステムから要求された前記状態情報が含まれる複数の前記状態情報を前記制御プロセッサから取得する状態情報取得部と、前記状態情報取得部により取得した前記複数の状態情報、及び当該複数の状態情報の取得時刻を所定のメモリに記録する状態情報記録部と、前記オペレーティングシステムから状態情報が要求された要求時刻と、前記取得時刻との時間差が所定値よりも小さいか否かを判定する時間差判定部と、前記時間差判定部による判定結果に応じて、前記状態情報取得部により再び前記状態情報を取得して前記オペレーティングシステムに応答するか、又は、前記所定のメモリに記録された状態情報を前記オペレーティングシステムに応答するかを決定する応答決定部と、を有する。
【００１２】
上記の情報処理装置が備える制御プロセッサは、前記各ハードウェアの状態を示す状態情報を内部又は外部のメモリに記録する状態情報記録部を有する。また、この制御プロセッサは、状態情報伝送部により、前記演算プロセッサの要求に応じて前記第メモリに記録された複数の状態情報を前記演算プロセッサに対して伝送する。
【００１３】
また、上記の情報処理装置が備える演算プロセッサは、状態情報取得部により、前記オペレーティングシステムから要求された前記状態情報が含まれる複数の前記状態情報を前記制御プロセッサから取得する。そして、この演算プロセッサが有する所定のメモリには、前記状態情報取得部により取得された前記複数の状態情報、及び当該複数の状態情報の取得時刻が記録される。さらに、この演算プロセッサは、時間差判定部により、前記オペレーティングシステムから状態情報が要求された要求時刻と、前記取得時刻との時間差が所定値よりも小さいか否かを判定する。また、この演算プロセッサは、応答決定部により、前記時間差判定部による判定結果に応じて、前記状態情報取得部により再び前記状態情報を取得して前記オペレーティングシステムに応答するか、又は、前記所定のメモリに記録された状態情報を前記オペレーティングシステムに応答するかを決定する。
【００１４】
このように、制御プロセッサにより取得された複数の状態情報が演算プロセッサに纏めて送信され、演算プロセッサによりキャッシュされる。そして、キャッシュされた状態情報は、ファームウェアにより適宜、オペレーティングシステムに伝送される。また、キャッシュされた状態情報には上記の所定値で表現される有効期限が設定され、この有効期限以内にキャッシュされた状態情報のみが利用される。その結果、状態情報の鮮度を維持しつつ、制御プロセッサと演算プロセッサとの間の通信回数が低減される。
【００１５】
また、前記応答決定部は、前記オペレーティングシステムから要求された状態情報が前記所定のメモリに存在しない場合に前記状態情報取得部により再び前記状態情報を取得して前記オペレーティングシステムに応答することを決定するように構成されていてもよい。
【００１６】
また、前記応答決定部は、前記時間差判定部による判定結果に基づき、前記時間差が所定値よりも大きい場合に、前記状態情報取得部により再び前記状態情報を取得して前記オペレーティングシステムに応答することを決定し、前記時間差が所定値よりも小さい場合に、前記所定のメモリに記録された状態情報を前記オペレーティングシステムに応答することを決定するように構成されていてもよい。さらに、前記所定値は、前記制御プロセッサの内部又は外部にあるメモリに記録された状態情報の更新周期より短い時間に設定されていてもよい。
【００１７】
また、上記課題を解決するために、本発明の別の観点によれば、情報処理装置に搭載され、複数のハードウェアを制御する制御プロセッサにより、前記各ハードウェアの状態を示す状態情報が前記制御プロセッサの内部又は外部にあるメモリに記録されるステップと、前記演算プロセッサの要求に応じて前記メモリに記録された複数の状態情報が前記演算プロセッサに対して伝送される状態情報伝送ステップと、を含み、前記情報処理装置に搭載され、オペレーティングシステム及びファームウェアが動作する演算プロセッサのファームウェアにより、前記オペレーティングシステムから要求された前記状態情報が含まれる複数の前記状態が情報前記制御プロセッサから取得される状態情報取得ステップと、前記状態情報取得ステップで取得された前記複数の状態情報、及び当該複数の状態情報の取得時刻が所定のメモリに記録されるステップと、前記オペレーティングシステムから状態情報が要求された要求時刻と、前記取得時刻との時間差が所定値よりも小さいか否かが判定される時間差判定ステップと、前記時間差判定ステップの判定結果に応じて、前記状態情報取得ステップと同様にして再び前記状態情報が取得して前記オペレーティングシステムに応答するか、又は、前記所定のメモリに記録された状態情報を前記オペレーティングシステムに応答するかが決定される応答決定ステップと、
を含む、ファームウェアによる情報管理方法が提供される。
【発明の効果】
【００１８】
以上説明したように本発明によれば、演算チップと制御チップとの間の通信頻度を低減させることで、システム性能を向上させることが可能になる。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２０】
＜実施形態＞
以下、本発明の一実施形態に係る技術について説明する。本実施形態は、演算用プロセッサと制御用プロセッサとの間の通信回数を低減させる技術に関する。特に、制御用プロセッサで取得されたハードウェア情報を演算用プロセッサのファームウェアでキャッシュすることで通信回数を削減し、演算用プロセッサに掛かる負荷を低減させる技術に関する。この技術は、演算用プロセッサと制御用プロセッサとがサウスブリッジのようなハードウェアを経由して接続されている場合に、より大きな効果を発揮する。以下、この技術を実現するための具体的な構成例について詳細に説明する。
【００２１】
［情報処理装置１００の筐体構成］
まず、図１を参照しながら、本実施形態に係る情報処理装置１００の外観について説明する。図１は、本実施形態に係る情報処理装置１００の外観を示す斜視図である。
【００２２】
図１に示すように、情報処理装置１００の筐体は、上面及び下面が他の面より広く形成された略直方体の形状を有している。また、この情報処理装置１００の筐体は、パンチ穴パネル１０２と、枠部材１０４と、中央ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）１０６と、電源ＬＥＤ１０８と、リセットスイッチ１１０と、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子１１２とにより構成される。
【００２３】
情報処理装置１００は、個人用の低価格のパーソナルコンピュータよりも高性能な演算チップを搭載したワークステーションと呼ばれるコンピュータである。特に、情報処理装置１００は、例えば、ＡＶ（Ａｕｄｉｏ  Ｖｉｓｕａｌ）データの３次元レンダリングや科学技術分野における数値シミュレーション等の高負荷処理に利用される。
【００２４】
このように、情報処理装置１００には膨大な量の演算処理が求められる。そのため、情報処理装置１００には、内部的に非対称な複数のコアを持ち、消費電力が高く発熱性の高いＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が搭載されている。また、情報処理装置１００による膨大な量の演算処理には大容量の記憶領域も必要になる。そのため、情報処理装置１００には、高速な読み出し処理や書き込み処理が可能な大容量の半導体メモリが搭載される。
【００２５】
上記の通り、情報処理装置１００は膨大な演算処理を実行するため、ＣＰＵ、ＧＰＵ、又はメモリ等を接続するためのバス、或いは、各種チップの動作を制御するコントローラ等、その他の構成要素にも大きな負荷が掛かる。こうした理由から、情報処理装置１００は、消費電力や発熱量が非常に大きいのである。従って、情報処理装置１００の筐体は、その内部で温められた空気を速やかに筐体外部に排出すると共に、筐体外部から冷たい空気を速やかに流入させる高効率の排熱処理機構を備えている必要がある。
【００２６】
こうした事情を踏まえ、情報処理装置１００の筐体にはパンチ穴パネル１０２が設けられている。パンチ穴パネル１０２は、所定の大きさ、及び所定の形状を有するパンチ穴が所定の間隔で複数穿孔された板状の部材である。このパンチ穴パネル１０２は、情報処理装置１００の筐体正面の一部又は全部を覆うように配置されている。パンチ穴パネル１０２に穿孔された複数のパンチ穴は、例えば、その各々が略正六角形を成し、ハニカム構造を成すように所定間隔で設けられている。
【００２７】
このパンチ穴パネル１０２は、情報処理装置１００の内部に空気を流入させるための吸気口を形成している。パンチ穴パネル１０２から流入した空気は、情報処理装置１００の筐体内部に設けられた冷却ファンにより筐体背面の排気口から強制的に排出される。このとき、情報処理装置１００の筐体内部に設置された発熱体の放熱により温められた空気が筐体背面から排出される。一方で、情報処理装置１００の筐体背面からの排気に伴う筐体内の気圧低下によりパンチ穴パネル１０２から冷たい空気が流入する。このようにして情報処理装置１００の筐体内部は換気される。
【００２８】
また、パンチ穴パネル１０２の奥側には、情報処理装置１００の筐体から外側に向けて発光する中央ＬＥＤ１０６が設けられている。さらに、パンチ穴パネル１０２の周囲を囲むように枠部材１０４が形成されている。枠部材１０４には、電源ＬＥＤ１０８、及びリセットスイッチ１１０が設けられている。そして、情報処理装置１００の筐体前面には、ＵＳＢ端子１１２が設けられている。尚、情報処理装置１００の筐体は、例えば、アルミや鉄等の金属、又はプラスチック等の部材により形成される。
【００２９】
中央ＬＥＤ１０６は、その発光色や点滅等により、情報処理装置１００の動作状態を示す。尚、中央ＬＥＤ１０６は、情報処理装置１００が後述する並列処理システム１に組み込まれた場合に、より有益な機能を提供する。電源ＬＥＤ１０８は、点灯することで電源の投入状態（ＯＮ）を示し、消灯することで電源の切断状態（ＯＦＦ）を示す。また、リセットスイッチ１１０は、情報処理装置１００を強制的に再起動させるためのユーザインタフェースである。さらに、ＵＳＢ端子１１２は、外部機器を接続できるようにパンチ穴パネル１０２を貫通するようにして設置されている。
【００３０】
［並列処理システム１の構成例］
次に、図２を参照しながら、本実施形態に係る並列処理システム１の構成について説明する。図２は、本実施形態に係る並列処理システム１の外観を示す説明図である。
【００３１】
上記の通り、本実施形態に係る情報処理装置１００は、高負荷処理に利用されるワークステーションである。そのため、ＡＶデータの３次元レンダリングや科学技術計算等の負荷が特に高い処理を実行する際には、複数の情報処理装置１００を並列に接続した並列処理システム１として運用される場合が多い。この場合、図２に示すように、複数台の情報処理装置１００がラック１２０に格納され、互いに高速なネットワークで接続されて並列処理システム１として利用される。高速なネットワークとしては、例えば、ミリネット、ファイバチャネル、又は高速なイーサネット（登録商標）等が利用される。
【００３２】
図２に示すように、並列処理システム１は、ラック１２０の奥行き方向に垂直な面上でパンチ穴パネル１０２が短手方向に沿って並ぶように各情報処理装置１００が設置される。そのため、ラック１２０に複数台の情報処理装置１００が並置されたとしても、吸気口であるパンチ穴パネル１０２が塞がれることが無いため、各情報処理装置１００による吸排気能力が損なわれない。また、中央ＬＥＤ１０６が容易に視認できるように設置されるため、ラック１２０に設置後も、各情報処理装置１００の動作状態をユーザが容易に把握することができる。
【００３３】
中央ＬＥＤ１０６は、例えば、情報処理装置１００の電源が切断された場合に消灯し、情報処理装置１００が正常に動作している場合に青色に点灯し、情報処理装置１００に異常が発生した場合に赤色に点灯するように構成される。この構成を利用すると、ユーザは、各情報処理装置１００の中央ＬＥＤ１０６を確認することにより、異常が発生した情報処理装置１００を容易に特定することができる。もちろん、中央ＬＥＤ１０６による情報提供の方法は上記の色識別パターンに限定されず、例えば、任意の周期的なパターンで発光（点滅）することによって情報提供する方法も考えられる。これらの発光制御は、後述するシステムコントローラ３１０により行われる。
【００３４】
［情報処理装置１００の冷却構造］
図３、及び図４を参照しながら、本実施形態に係る情報処理装置１００の内部構造について簡単に説明する。図３は、本実施形態に係る情報処理装置１００の冷却構造の一例を示す説明図である。図４は、本実施形態に係る情報処理装置１００の基板構成の一例を示す説明図である。
【００３５】
図３に示すように、情報処理装置１００の冷却構造は、主に、基板ＭＢ１０上に設置されたヒートシンクＭＢ１２、ＭＢ１４と、冷却ダクトＭＢ１６と、冷却ファンＭＢ１８とにより構成される。
【００３６】
基板ＭＢ１０は、配線プリント基板である。また、基板ＭＢ１０には、複数のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）チップが搭載されている（図４を参照）。これらのＩＣチップは、情報処理装置１００における発熱体の一例である。そのため、発熱量の大きいＩＣチップには、ヒートシンクＭＢ１２、ＭＢ１４が設置される。ヒートシンクＭＢ１２、ＭＢ１４の形状や大きさは、冷却するＩＣチップの発熱量や設置面積の大きさに応じて決定される。さらに、ヒートシンクＭＢ１４には、その下に設置されたＩＣチップの冷却効率を高めるため、冷却ダクトＭＢ１６と冷却ファンＭＢ１８が接続されている。
【００３７】
冷却ファンＭＢ１８は、情報処理装置１００の筐体前面を向いており、その回転により、図１に示すパンチ穴パネル１０２を介して外気を流入させることができる。冷却ファンＭＢ１８により外部からの冷たい空気が冷却ダクトＭＢ１６に流入されると、冷却ダクトＭＢ１６を通じて流入した空気は、ヒートシンクＭＢ１４に供給される。そして、供給された空気により、ヒートシンクＭＢ１４に設けられたフィンが冷却される。その結果、ヒートシンクＭＢ１４のフィンに伝達してきたＩＣチップの熱が空気により冷却され、ＩＣチップの発熱を効率的に冷却することができる。
【００３８】
尚、ヒートシンクＭＢ１４の熱により温められた空気は、情報処理装置１００の筐体背面に設けられた排気口より筐体外部に排出される。このとき、排気口に向けて流出された空気によりヒートシンクＭＢ１２が冷却されるような冷却構造にしてもよい。また、冷却ダクトＭＢ１６に分岐管を設け、通過する外気の一部が冷却ダクトＭＢ１６の下に位置するＩＣチップに供給されるような冷却構造にしてもよい。
【００３９】
ここで、基板ＭＢ１０上に設けられたヒートシンクＭＢ１２、ＭＢ１４、及び冷却ダクトＭＢ１６を取り去った情報処理装置１００の構成例を図４に示す。上記の通り、基板ＭＢ１０には、複数のＩＣチップＭＢ２０、ＭＢ２４、ＭＢ２６が搭載されている。例えば、ＩＣチップＭＢ２４上には、冷却用にヒートシンクＭＢ１４が載置される。また、ＩＣチップＭＢ２６には、冷却用にヒートシンクＭＢ１２が載置される。ＩＣチップＭＢ２０は、冷却ダクトＭＢ１６から分岐された空気により冷却される。
【００４０】
また、小型のＩＣチップには、小型のヒートシンクＭＢ２２が載置される。例えば、比較的発熱量の多いプロセッサユニット３０２（図５を参照）には、ＩＣチップＭＢ２４のように、ヒートシンクＭＢ１４と冷却ダクトＭＢ１６とを組み合わせた冷却構造が用いられる。また、プロセッサユニット３０２に比べて発熱量が低いシステムコントローラ３１０等には、ＩＣチップＭＢ２６やＩＣチップＭＢ２０のような冷却構造が用いられる。
【００４１】
以上、図３、及び図４を参照しながら、基板ＭＢ１０に載置されたＩＣチップを例に挙げて冷却構造を説明したが、比較的発熱量の多いメモリ３０６（図５を参照）に対しても同様の冷却構造を適用することができる。
【００４２】
［情報処理装置１００のハードウェア構成］
図５を参照しながら、本実施形態に係る情報処理装置１００のハードウェア構成について説明する。図５は、本実施形態に係る情報処理装置１００のハードウェア構成の一例を示す説明図である。
【００４３】
（構成例）
図５に示すように、情報処理装置１００は、主に、プロセッサユニット３０２と、メモリバス３０４と、メモリ３０６と、サウスブリッジ３０８と、システムコントローラ３１０と、外部バス３１４と、ＵＳＢインターフェース３１６と、記憶装置３１８と、ドライブ３２０と、ネットワークインターフェース３２４と、温度センサ３２６と、冷却ファン３２８とにより構成される。尚、システムコントローラ３１０は、制御プロセッサの一例である。
【００４４】
また、プロセッサユニット３０２は、メインＣＰＵコア３５２と、複数のサブＣＰＵコア３５４と、ＥＩ（Ｅｌｅｍｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス３５６と、メモリコントローラ３５８と、Ｉ／Ｏコントローラ３６０とにより構成される。メインＣＰＵコア３５２、複数のサブＣＰＵコア３５４、メモリコントローラ３５８、及びＩ／Ｏコントローラ３６０は、高速なＥＩバス３５６を介して接続される。メモリコントローラ３５８、及びメモリ３０６は、メモリバス３０４により接続される。メインＣＰＵコア３５２、及び複数のサブＣＰＵコア３５４は、メモリコントローラ３５８を介してメモリ３０６にアクセスする。尚、メインＣＰＵコア３５２は、演算プロセッサの一例である。また、メモリ３０６は、後述するファームウェア３５２４による状態情報のキャッシュに利用される。
【００４５】
メインＣＰＵコア３５２は、オペレーティングシステム（Ｏ／Ｓ；Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）３５２２やファームウェア３５２４等の基本プログラムを実行する汎用的なマイクロプロセッサである。このファームウェア３５２４は、システムコントローラ３１０やＩ／Ｏコントローラ３６０を介してサウスブリッジ３０８に接続された機器を制御する機能や、プロセッサユニット３０２のアーキティクチャやハードウェア構成を抽象化する機能を実現する。例えば、ランタイム・アブストラクション・サービス（ＲＴＡＳ）と呼ばれるファームウェアが用いられる。このように、メインＣＰＵコア３５２は、主に、サブＣＰＵコア３５４へのリソースマネジメント等に利用される。また、メインＣＰＵコア３５２は、キャッシュメモリ３５２６を備えている。尚、ファームウェア３５２４は、状態情報記録部、状態情報取得部、時間差判定部、応答決定部の一例である。また、ファームウェア３５２４は、メモリ３０６に展開されて動作する。
【００４６】
サブＣＰＵコア３５４としては、例えば、ＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）タイプの信号処理プロセッサが用いられる。そして、サブＣＰＵコア３５４は、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）系のアーキティクチャであり、１回の命令で複数のデータを同時に処理することができる高性能プロセッサである。このサブＣＰＵコア３５４は、ＳＰＥ（Ｓｙｎｅｒｇｉｓｔｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）と呼ばれることがある。また、各サブＣＰＵコア３５４は、メモリ３０６から独立したキャッシュメモリ（ＬＳ；Ｌｏｃａｌ  Ｓｔｏｒｅ）（非図示）を備えている。
【００４７】
メモリ３０６には、例えば、メモリ帯域幅が広く、高速アクセスが可能なＸＤＲ−ＲＡＭ（Ｅｘｔｒｅｍｅ  Ｄａｔａ  Ｒａｔｅ−Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が利用される。また、サウスブリッジ３０８は、Ｉ／Ｏコントローラ３６０、ＥＩバス３５６を介してメインＣＰＵコア３５２、及び複数のサブＣＰＵコア３５４に接続されている。さらに、サウスブリッジ３０８は、システムコントローラ３１０に接続されている。システムコントローラ３１０は、Ｉ／Ｏコントローラ３６０を通じて温度センサ３２６や冷却ファン３２８、記憶装置３１８等を制御する。また、システムコントローラ３１０には、キャッシュメモリ３１０４及びメインＣＰＵコア３５２のファームウェア３５２４と通信可能なファームウェア３１０２が搭載されている。このファームウェア３１０２は、状態情報伝送部の一例である。尚、キャッシュメモリ３１０４は、単に、システムコントローラ３１０の内部に搭載されたメモリを意味しており、必ずしもＣＰＵキャッシュのような一時記憶領域としての用途に限定されるものではない。
【００４８】
サウスブリッジ３０８には、システムコントローラ３１０、ＵＳＢインターフェース３１６、及び記憶装置３１８が接続されている。さらに、サウスブリッジ３０８には、外部バス３１４を介してドライブ３２０、ネットワークインターフェース３２４が接続されている。外部バス３１４には、例えば、ＥＩバス３５６やメモリバス３０４に比べて低速なＰＣＩバス（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｕｓ）等が利用される。
【００４９】
記憶装置３１８には、例えば、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）構成のハードディスクドライブ（ＨＤＤ）や半導体記憶装置等が用いられる。ネットワークインターフェース３２４には、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネット等に接続するための通信カード、或いは、並列処理システム１の構築に利用される高速ネットワーク用のインターフェースボードが用いられる。
【００５０】
ドライブ３２０には、リムーバブルメディア３２２が接続される。ドライブ３２０に接続されるリムーバブルメディア３２２の例としては、例えば、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＭＤ（Ｍｉｎｉ−Ｄｉｓｃ）、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、又は半導体メモリ等が挙げられる。
【００５１】
（動作例）
ここで、ＡＶデータの３次元レンダリングが実行される場合の動作例について考える。まず、所定の処理に用いるアプリケーションプログラムは、メモリ３０６に展開されて、メインＣＰＵコア３５２により実行される。それによって、ＡＶデータの３次元レンダリング処理と関連データは、サブＣＰＵコア３５４に振り分けられる。そして、複数のサブＣＰＵコア３５４は、メインＣＰＵコア３５２により振り分けられたエンコード処理を並列的に実行する。次いで、各サブＣＰＵコア３５４による処理結果は、メインＣＰＵ３５４によりシステムコントローラ３１０等を介して記憶装置３１８、又はリムーバブルメディア３２２等に記録される。
【００５２】
（オプションボードの具体例）
ここで、図６を参照しながら、オプションボードの具体例について述べる。図６は、オプションボードの一例であるメモリライザーカードの外観を示す説明図である。
【００５３】
上記のように、情報処理装置１００には、例えば、外部バス３１４を介してオプションボードが接続されうる。このオプションボードは、例えば、ＬＡＮカード、グラフィックカード、映像入出力カード（ＴＶキャプチャカード等）、音声入出力カード、モデムカード、ＵＳＢ端子増設カード、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）カード、物理演算カード等である。
【００５４】
しかし、本実施形態に係る情報処理装置１００には、この他にも、プロセッサユニット３０２を増設したり、メモリ３０６を増設するためのライザーカードが搭載されうる。これらのライザーカードは、比較的低速な外部バス３１４を介さず、より高速なバスを介して接続される。図５には明示しなかったが、例えば、メモリ３０６やプロセッサユニット３０２がオプションボードを構成する場合がある。また、メモリ３０６とは別にメモリを増設するためのライザーカードが設けられる場合もある。一例として、図６に、増設メモリが搭載されるメモリライザーカード（オプションボードＢ１０）の構成例を示した。
【００５５】
図６に示すように、オプションボードＢ１０は、基板Ｂ１２上に複数のメモリスロットＢ１４が搭載されたライザーカードである。基板Ｂ１２は、メモリスロットＢ１４の他に温度センサＢ２２を搭載している。また、基板Ｂ１２は、接続端子Ｂ２４を介して情報処理装置１００に接続されるように構成されている。メモリスロットＢ１４には、メモリＢ１６が搭載される。このメモリＢ１６は、高速な応答特性を有する高クロック動作のメモリである。そのため、メモリＢ１６が発する熱量が非常に大きい。そこで、メモリＢ１６には、冷却機構として、放熱フィンＢ１８、及び冷却ファンＢ２０が搭載されている。
【００５６】
以上説明したように、本実施形態に係る情報処理装置１００には、高負荷処理を実行するために高速な演算機構が搭載されており、この演算機構の発熱を冷却するために強力な冷却機構が設けられている。こうした冷却機構の制御処理は、主に、システムコントローラ３１０により実行される。そのため、システムコントローラ３１０は、Ｉ／Ｏコントローラ３６０を介して制御される各種のＩ／Ｏ機器の状態を管理している。Ｉ／Ｏ機器としては、例えば、温度センサ３２６、冷却ファン３２８、記憶装置３１８等が挙げられる。
【００５７】
システムコントローラ３１０は、こうしたＩ／Ｏ機器の状態を示す情報（以下、状態情報）を内部又は外部のメモリ（例えば、記憶装置３１８、キャッシュメモリ３１０４等）に保持している。また、システムコントローラ３１０は、内部又は外部のメモリに格納された状態情報を所定の時間周期で更新する。このようにして管理される状態情報は、メインＣＰＵコア３５２で動作するオペレーティングシステム３５２２上のアプリケーションにより利用される場合がある。その際、システムコントローラ３１０は、ファームウェア３１０２を介してメインＣＰＵコア３５２のファームウェア３５２４にアクセスし、所要の状態情報を伝送する。
【００５８】
ところが、システムコントローラ３１０がサウスブリッジ３０８を介してメインＣＰＵコア３５２に接続されているため、状態情報の伝送に掛かる時間が大きく、頻繁に状態情報の伝送を繰り返すとシステム性能が低下してしまう。そのため、システムコールの呼び出し回数を低下させる技術が求められている。本実施形態は、このような状態情報の取得に起因してシステムの性能が低下する問題を解決するものである。以下、本実施形態に係る技術について、より詳細に説明する。
【００５９】
［情報処理装置１００の機能構成］
次に、図７を参照しながら、本実施形態に係る情報処理装置１００の機能構成について説明する。図７は、本実施形態に係る情報処理装置１００の機能構成を示す説明図である。但し、図７は、図５に示したハードウェア構成例とは異なり、各構成要素の機能を説明するために概略的な構成を示した説明図である。特に、上記の状態情報の遣り取りに係るメインＣＰＵコア３５２とシステムコントローラ３１０との間の通信関係が理解し易いように簡略化されている点に注意されたい。
【００６０】
図７に示すように、メインＣＰＵコア３５２では、オペレーティングシステム３５２２、及びファームウェア３５２４が動作する。また、メインＣＰＵコア３５２には、キャッシュメモリ３５２６が搭載されている。さらに、メインＣＰＵコア３５２は、メモリコントローラ３５８を介してメモリ３０６に接続されている。そして、メインＣＰＵコア３５２は、サウスブリッジ３０８を介してシステムコントローラ３１０に接続されている。
【００６１】
メインＣＰＵコア３５２には、例えば、ＰｏｗｅｒＰＣ（登録商標）（Ｐｅｒｆｏｒｍａｎｃｅ  ｏｐｔｉｍｉｚａｔｉｏｎ  ｗｉｔｈ  ｅｎｈａｎｃｅｄ  ＲＩＳＣ  ｆｏｒ  Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）と呼ばれるＲＩＳＣ型マイクロプロセッサのアーキティクチャが利用可能である。また、オペレーティングシステム３５２２には、例えば、Ｌｉｎｕｘ（登録商標）が利用可能である。この場合、ファームウェア３５２４には、ランタイム・アブストラクション・サービス（ＲＴＡＳ）が含まれる。
【００６２】
システムコントローラ３１０では、ファームウェア３１０２が動作する。また、システムコントローラ３１０には、キャッシュメモリ３１０４が搭載されている。さらに、システムコントローラ３１０は、Ｉ／Ｏコントローラ３６０を介して記憶装置３１８や種々のＩ／Ｏデバイス３３２の状態情報を取得することができる。尚、Ｉ／Ｏデバイス３３２としては、例えば、温度センサ３２６、冷却ファン３２８等が挙げられる。
【００６３】
システムコントローラ３１０のファームウェア３１０２は、記憶装置３１８やＩ／Ｏデバイス３３２等の状態情報を取得するために利用される。また、このファームウェア３１０２は、メインＣＰＵコア３５２のファームウェア３５２４に対し、状態情報を伝送する機能を提供する。この状態情報は、所定の時間周期でＩ／Ｏデバイス３３２等から取得され、記憶装置３１８やキャッシュメモリ３１０４に格納される。そして、所定の時間周期毎に、新たに取得された状態情報で記憶装置３１８又はキャッシュメモリ３１０４の内容が更新される。この時間周期が十分に短い場合、記憶装置３１８又はキャッシュメモリ３１０４に記録された状態情報は最新に近い状態にある。そのため、システムコントローラ３１０のファームウェア３１０２は、メインＣＰＵコア３５２で動作するファームウェア３５２４から状態情報の問い合わせを受けると、記憶装置３１８又はキャッシュメモリ３１０４に記録されている状態情報をそのまま伝送する。このような構成にすることで、最新に近い状態情報がファームウェア３５２４に伝送される。
【００６４】
（状態情報の伝送処理について）
上記の機能構成を踏まえ、図８を参照しながら、メインＣＰＵコア３５２とシステムコントローラ３１０との間における状態情報の伝送処理について説明する。図８は、本実施形態に係る状態情報の伝送処理を示す説明図である。
【００６５】
図８に示すように、メインＣＰＵコア３５２で動作するオペレーティングシステム３５２２の上では、アプリケーションＡ１０が動作している。このアプリケーションＡ１０の例としては、例えば、ｓｎｍｐ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）エージェント等が挙げられる。このアプリケーションＡ１０により、所要のハードウェアの状態情報が要求される。尚、アプリケーションＡ１０としては、これに限定されず、ハードウェアの状態情報を要求するアプリケーションであれば、どのようなものであってもよい。
【００６６】
また、オペレーティングシステム３５２２は、その中核を成すカーネル（ｋｅｒｎｅｌ）Ａ１４、及びアプリケーションＡ１０との間を仲介するインターフェースプログラム（ＡＰＩ；Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）Ａ１２により構成される。つまり、アプリケーションＡ１０は、インターフェースプログラムＡ１２を介してカーネルＡ１４上で動作する。従って、アプリケーションＡ１０による状態情報の要求は、インターフェースプログラムＡ１２を介してカーネルＡ１４に伝達される。また、カーネルＡ１４が取得した状態情報は、インターフェースプログラムＡ１２を介してアプリケーションＡ１０に伝達される。
【００６７】
また、メインＣＰＵコア３５２で動作するファームウェア３５２４は、ランタイム・アブストラクション・サービス（ＲＴＡＳ）Ａ１８、及びカーネルＡ１４との間を仲介するためのインターフェースプログラム（ＡＰＩ）Ａ１６により構成される。ランタイム・アブストラクション・サービスＡ１８は、カーネルＡ１４により中継された状態情報の要求をインターフェースプログラムＡ１６を介して取得する。そして、ランタイム・アブストラクション・サービスＡ１８は、システムコントローラ３１０に対し、その状態情報の要求を伝送する。
【００６８】
この伝送には、例えば、ｍａｉｌｂｏｘと呼ばれる仕組みが利用される。このｍａｉｌｂｏｘとは、例えば、図５に示したサウスブリッジで提供されるハードウェアの仕組みで、それに接続された複数のデバイス間の通信に用いられる。この仕組みを利用することで、ランタイム・アブストラクション・サービスＡ１８とシステムコントローラ３１０との間における状態情報の伝送が可能になる。
【００６９】
さて、システムコントローラ３１０には、ファームウェア３１０２が搭載されている。このファームウェア３１０２は、システムコントローラファームウェアＡ２２、及びランタイム・アブストラクション・サービスＡ１８との間を仲介するためのインターフェースプログラム（ＡＰＩ）Ａ２０により構成される。ランタイム・アブストラクション・サービスＡ１８から転送された状態情報の要求は、インターフェースプログラムＡ２０を介してシステムコントローラファームウェアＡ２２に伝送される。これを受け、システムコントローラファームウェアＡ２２は、その要求に対応する状態情報をランタイム・アブストラクション・サービスＡ１８に返送する。
【００７０】
このとき、本実施形態に係るシステムコントローラファームウェアＡ２２は、記憶装置３１８又はキャッシュメモリ３１０４に記録された複数の状態情報をランタイム・アブストラクション・サービスＡ１８に纏めて返送する。もちろん、記録装置３１８又はキャッシュメモリ３１０４に１つの状態情報しか記録されていなければ、その状態情報が返送される。当然、返送される状態情報には、ランタイム・アブストラクション・サービスＡ１８からの要求に対応する状態情報が含まれている必要がある。
【００７１】
ランタイム・アブストラクション・サービスＡ１８は、システムコントローラファームウェアＡ２２から一又は複数の状態情報を取得すると、その取得した状態情報をメモリ３０６に格納する。このとき、ランタイム・アブストラクション・サービスＡ１８は、システムコントローラファームウェアＡ２２から状態情報を取得した取得時刻を併せてメモリ３０６に格納に格納する。そして、ランタイム・アブストラクション・サービスＡ１８は、メモリ３０６に格納された状態情報の中から、カーネルＡ１４により要求されたハードウェアの状態情報を抽出する。次いで、ランタイム・アブストラクション・サービスＡ１８は、その抽出した状態情報をインターフェースプログラムＡ１６を介してカーネルＡ１４に伝送する。
【００７２】
上記の通り、カーネルＡ１４からランタイム・アブストラクション・サービスＡ１８に状態情報の要求が伝送された際、ランタイム・アブストラクション・サービスＡ１８は、システムコントローラファームウェアＡ２２から複数の状態情報を取得する。但し、ランタイム・アブストラクション・サービスＡ１８は、カーネルＡ１４から状態情報が要求された要求時刻と、メモリ３０６に格納された取得時刻との時間差が所定値以内である場合、メモリ３０６に既に存在する状態情報を伝送する。つまり、ランタイム・アブストラクション・サービスＡ１８は、メモリ３０６に格納された状態情報を再度利用するように構成されている。
【００７３】
そのため、ランタイム・アブストラクション・サービスＡ１８は、メモリ３０６に所望の状態情報が格納されていないか、メモリ３０６内の状態情報が古い場合にのみ、システムコントローラファームウェアＡ２２から状態情報を取得する。尚、上記の要求時刻と取得時刻との時間差に関し、その新旧を判定するための所定値は、例えば、システムコントローラファームウェアＡ２２が所定のハードウェアから状態情報を取得する所定周期以下の時間に設定される。ランタイム・アブストラクション・サービスＡ１８からカーネルＡ１４に伝送された状態情報は、さらに、アプリケーションＡ１０に伝送され、当該アプリケーションＡ１０による処理に利用される。
【００７４】
以上、本実施形態に係る情報処理装置１００の機能構成について説明した。上記の通り、この情報処理装置１００は、メインＣＰＵコア３５２で動作するファームウェアの一例であるランタイム・アブストラクション・サービスＡ１８の機能構成に特徴がある。
【００７５】
特に、ランタイム・アブストラクション・サービスＡ１８により、システムコントローラファームウェアＡ２２から複数の状態情報を纏めて取得してキャッシュする構成に１つの特徴がある。また、カーネルＡ１４から状態情報が要求された際に、ランタイム・アブストラクション・サービスＡ１８により、キャッシュされた状態情報が返送される構成に１つの特徴がある。さらに、ランタイム・アブストラクション・サービスＡ１８により、メモリ３０６に格納された状態情報の新旧が管理される構成にも１つの特徴がある。
【００７６】
このような構成にすることで、メインＣＰＵコア３５２とシステムコントローラ３１０との間で頻繁に発生する状態情報の交換回数が低減され、メインＣＰＵコア３５２に対する負荷が低減される。さらに、バス幅が狭く、比較的通信速度が低速なサウスブリッジ３０８等のハードウェアを介して通信する機会が大きく低減されることになり、システム全体の性能が向上する。
【００７７】
［状態情報の取得方法］
次に、図９、及び図１０を参照しながら、本実施形態に係る状態情報の管理方法について説明する。図９は、キャッシュを利用せずに状態情報を取得する方法の流れを説明するための説明図であり、本実施形態に係る管理方法との差異を明確にする目的で記載されたものである。図１０は、本実施形態に係る状態情報の管理方法に係る処理の流れについて説明するための説明図である。
【００７８】
（キャッシュを利用しない場合）
まず、図９を参照する。上記の通り、図９の例は、ランタイム・アブストラクション・サービスＡ１８がキャッシュ処理を行わずに状態情報をカーネルＡ１４に伝送する場合における処理の流れを示したものである。
【００７９】
図９に示すように、まず、アプリケーションＡ１０から状態情報の取得要求がカーネルＡ１４に伝送される（Ｓ１０２）。次いで、カーネルＡ１４からランタイム・アブストラクション・サービスＡ１８に対し、状態情報の取得要求（ｇｅｔ＿ｓｅｎｓｏｒ＿ｓｔａｔｅ（）の呼び出し）が伝送される（Ｓ１０４）。次いで、ランタイム・アブストラクション・サービスＡ１８からシステムコントローラファームウェアＡ２２に対し、サウスブリッジ３０８経由で状態情報の要求が伝送される（Ｓ１０６）。
【００８０】
システムコントローラファームウェアＡ２２は、ランタイム・アブストラクション・サービスＡ１８から状態情報の要求を受信すると、記録装置３１８又はキャッシュメモリ３１０４から要求に対応する１つの状態情報を取得する（Ｓ１０８）。次いで、システムコントローラファームウェアＡ２２からランタイム・アブストラクション・サービスＡ１８に対し、取得された状態情報が伝送される（Ｓ１１０）。次いで、ランタイム・アブストラクション・サービスＡ１８からカーネルＡ１４に状態情報が転送される（Ｓ１１２）。次いで、カーネルＡ１４からアプリケーションＡ１０に状態情報が転送される（Ｓ１１４）。
【００８１】
アプリケーションＡ１０は、ステップＳ１１４で状態情報を取得した後、さらに状態情報の取得要求をカーネルＡ１４に伝送する（Ｓ１２２）。次いで、カーネルＡ１４からランタイム・アブストラクション・サービスＡ１８に対し、状態情報の取得要求（ｇｅｔ＿ｓｅｎｓｏｒ＿ｓｔａｔｅ（）の呼び出し）が伝送される（Ｓ１２４）。次いで、ランタイム・アブストラクション・サービスＡ１８からシステムコントローラファームウェアＡ２２に対し、サウスブリッジ３０８経由で状態情報の要求が伝送される（Ｓ１２６）。
【００８２】
システムコントローラファームウェアＡ２２は、ランタイム・アブストラクション・サービスＡ１８から状態情報の要求を受信すると、記憶装置３１８又はキャッシュメモリ３１０４から要求に対応する１つの状態情報を取得する（Ｓ１２８）。次いで、システムコントローラファームウェアＡ２２からランタイム・アブストラクション・サービスＡ１８に対し、取得された状態情報が伝送される（Ｓ１３０）。次いで、ランタイム・アブストラクション・サービスＡ１８からカーネルＡ１４に状態情報が転送される（Ｓ１３２）。次いで、カーネルＡ１４からアプリケーションＡ１０に状態情報が転送される（Ｓ１３４）。
【００８３】
このように、アプリケーションＡ１０は、立て続けに状態情報の取得要求を発信する場合がある。この場合、２回目の取得要求は、ステップＳ１１４で取得した状態情報に対応するハードウェアと同じハードウェアに対するものである場合もあるし、異なるハードウェアに対するものである場合もある。また、これらの取得要求の送信間隔が非常に短いと、記憶装置３１８又はキャッシュメモリ３１０４の内容が更新されておらず、同じ状態情報が繰り返し伝送されてくる場合がある。もし、同じハードウェアに対する状態情報が続けて要求された場合に、その取得要求の送信間隔が非常に短いと、記憶装置３１８又はキャッシュメモリ３１０４に格納された同じ状態情報を繰り返し取得することになる。このような取得処理は意味が無いばかりか、システム全体の性能低下を招いてしまう。
【００８４】
（キャッシュを利用する場合）
そこで、本実施形態では、図１０に示すように、ランタイム・アブストラクション・サービスＡ１８により複数の状態情報を纏めて取得すると共に、その状態情報をキャッシュして利用する構成を採用している。以下、図１０について説明する。
【００８５】
図１０に示すように、まず、アプリケーションＡ１０から、ある状態情報の取得要求がカーネルＡ１４に伝送される（Ｓ２０２）。次いで、カーネルＡ１４からランタイム・アブストラクション・サービスＡ１８に対し、状態情報の取得要求（ｇｅｔ＿ｓｅｎｓｏｒ＿ｓｔａｔｅ（）の呼び出し）が伝送される（Ｓ２０４）。次いで、ランタイム・アブストラクション・サービスＡ１８からシステムコントローラファームウェアＡ２２に対し、サウスブリッジ３０８経由で状態情報の要求が伝送される（Ｓ２０６）。但し、このステップＳ２０６において伝送される状態情報の取得要求は、アプリケーションＡ１０により要求された状態情報を含む一又は複数の状態情報に対するものである。
【００８６】
システムコントローラファームウェアＡ２２は、ランタイム・アブストラクション・サービスＡ１８から状態情報の要求を受信すると、記憶装置３１８又はキャッシュメモリ３１０４から要求に対応する複数の状態情報を取得する（Ｓ２０８）。次いで、システムコントローラファームウェアＡ２２からランタイム・アブストラクション・サービスＡ１８に対し、記憶装置３１８又はキャッシュメモリ３１０４から取得された一又は複数の状態情報が伝送される（Ｓ２１０）。つまり、記憶装置３１８又はキャッシュメモリ３１０４に複数の状態情報が存在する場合、複数の状態情報が纏めて送信されるのである。
【００８７】
次いで、ランタイム・アブストラクション・サービスＡ１８は、取得した状態情報をメモリ３０６に格納する（Ｓ２１２）。このとき、ランタイム・アブストラクション・サービスＡ１８は、状態情報を取得した時刻をメモリ３０６に格納する（Ｓ２１２）。次いで、ランタイム・アブストラクション・サービスＡ１８は、メモリ３０６に格納された状態情報の中から、ステップＳ２０４で要求された状態情報を読み出し、カーネルＡ１４に伝送する（Ｓ２１４）。次いで、カーネルＡ１４からアプリケーションＡ１０に状態情報が転送される（Ｓ２１６）。
【００８８】
アプリケーションＡ１０は、ステップＳ２１６で状態情報を取得した後、さらに状態情報の取得要求をカーネルＡ１４に伝送する（Ｓ２２２）。次いで、カーネルＡ１４からランタイム・アブストラクション・サービスＡ１８に対し、状態情報の取得要求（ｇｅｔ＿ｓｅｎｓｏｒ＿ｓｔａｔｅ（）の呼び出し）が伝送される（Ｓ２２４）。ランタイム・アブストラクション・サービスＡ１８は、状態情報の取得要求を受け、その取得要求に対応する状態情報をメモリ３０６から読み出す（Ｓ２２６）。
【００８９】
このとき、ランタイム・アブストラクション・サービスＡ１８は、メモリ３０６に格納された取得時刻と、状態情報が要求された要求時刻との時間差が所定値以内か否かを判定する。この時間差が所定値以内であれば、ランタイム・アブストラクション・サービスＡ１８は、上記の通り、メモリ３０６から所望の状態情報を読み出す。一方、この時間差が所定値よりも大きい場合、ランタイム・アブストラクション・サービスＡ１８は、ステップＳ２０６〜Ｓ２１０のように状態情報を新たに取得する。
【００９０】
キャッシュメモリ３５２６から状態情報を読み出した後、ランタイム・アブストラクション・サービスＡ１８は、その読み出した状態情報をカーネルＡ１４に伝送する（Ｓ２２８）。次いで、カーネルＡ１４からアプリケーションＡ１０に状態情報が転送される（Ｓ２３０）。
【００９１】
上記の通り、本実施形態では、ランタイム・アブストラクション・サービスＡ１８が纏めて取得した複数の状態情報をメモリ３０６に格納しておき、その格納された状態情報がカーネルＡ１４に伝送される構成を有している。そのため、システムコントローラ３１０の記憶装置３１８又はキャッシュメモリ３１０４が更新される周期よりも短い時間内に続けて状態情報が要求された場合に、ランタイム・アブストラクション・サービスＡ１８とシステムコントローラファームウェアＡ２２との間で無駄な通信が発生しない。その結果、システムに掛かる負荷が低減され、システム性能が向上する。
【００９２】
［ファームウェア３５２４による処理の流れ］
次に、図１１を参照しながら、本実施形態に係るメインＣＰＵコア３５２上で動作するファームウェア３５２４による処理の流れについて説明する。図１１は、主に、本実施形態に係るメインＣＰＵコア３５２上で動作するファームウェア３５２４による処理の流れを示す説明図である。尚、ここで説明する処理の流れは、上記のランタイム・アブストラクション・サービスＡ１８の処理をより詳細に説明するものである。
【００９３】
図１１に示すように、まず、メインＣＰＵコア３５２上で動作するファームウェア３５２４は、オペレーティングシステム３５２２から状態情報の取得要求を受け取る（Ｓ３０２）。次いで、ファームウェア３５２４は、以前に取得した状態情報がメモリ３０６に存在するか否かを判断する（Ｓ３０４）。メモリ３０６に状態情報が存在する場合、ファームウェア３５２４は、ステップＳ３０６の処理に進行する。一方、メモリ３０６に状態情報が存在しない場合、ファームウェア３５２４は、ステップＳ３１０の処理に進行する。
【００９４】
ステップＳ３０６では、ファームウェア３５２４により、現在時刻（要求時刻）と、メモリ３０６に記録された取得時刻との時間差が所定値よりも小さいか否かが判定される（Ｓ３０６）。この時間差が所定値よりも小さい場合、ファームウェア３５２４は、ステップＳ３０８の処理に進行する。一方、この時間差が所定値よりも大きい場合、ファームウェア３５２４は、ステップＳ３１０の処理に進行する。
【００９５】
ステップＳ３０８では、ファームウェア３５２４により、メモリ３０６に格納された状態情報がオペレーティングシステム３５２２（カーネルＡ１４）に伝送される（Ｓ３０８）。一方、ステップＳ３１０では、ファームウェア３５２４により、サウスブリッジ３０８経由でシステムコントローラ３１０から複数の状態情報が取得される（Ｓ３１０）。次いで、ファームウェア３５２４は、取得した状態情報、及びその取得時刻をメモリ３０６に格納する（Ｓ３１２）。次いで、ファームウェア３５２４は、取得した状態情報の中から取得要求に対応する状態情報を選択してオペレーティングシステム３５２２（カーネルＡ１４）に伝送する（Ｓ３１４）。
【００９６】
上記の処理により、オペレーティングシステム３５２２を介してファームウェア３５２４に状態情報の取得要求が伝送される度にシステムコントローラ３１０とファームウェア３５２４との間で通信が発生するのを避けることができる。つまり、サウスブリッジ３０８等のハードウェアを介して状態情報を遣り取りするための通信回数が低減され、状態情報の通信に掛かるシステムへの負荷が低減され、システム性能が向上する。
【００９７】
以上、本実施形態に係る装置、及び方法の構成について詳細に説明した。上記の通り、本実施形態は、演算処理用のプロセッサ上で動作するファームウェアにより、制御処理用のプロセッサから取得される状態情報の管理技術に関する。
【００９８】
この技術は、演算処理用のプロセッサと制御処理用のプロセッサとがサウスブリッジのようなハードウェア経由で通信するような構成である場合に、その通信処理の回数を低減させ、システム全体の性能向上を図るためのものである。特に、ファームウェアにより複数の状態情報が一度に取得され、メモリに格納される構成、及びそのメモリに格納された状態情報を利用する構成に特徴がある。さらに、メモリに格納された状態情報が、その取得時刻により管理される構成にも特徴がある。これらの特徴的な構成により、状態情報の取得要求に対するファームウェアの応答速度が向上し、ひいては、オペレーティングシステム（カーネル）によるシステムコールの短縮にも繋がる。結果として、システム全体の性能向上に資することとなる。
【００９９】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【０１００】
【図１】本発明の一実施形態に係る情報処理装置の外観を示す説明図である。
【図２】同実施形態に係る並列処理システムの外観を示す説明図である。
【図３】同実施形態に係る情報処理装置の冷却構造例を示す説明図である。
【図４】同実施形態に係る情報処理装置の基板構成例を示す説明図である。
【図５】同実施形態に係る情報処理装置のハードウェア構成例を示す説明図である。
【図６】同実施形態に係るオプションボードの一例を示す説明図である。
【図７】同実施形態に係る情報処理装置の機能構成を示す説明図である。
【図８】同実施形態に係る状態情報の取得処理方法を示す説明図である。
【図９】同実施形態に係る状態情報の取得処理方法を示す説明図である。
【図１０】同実施形態に係る状態情報の取得処理方法を示す説明図である。
【図１１】同実施形態に係る状態情報の取得処理方法を示す説明図である。
【符号の説明】
【０１０１】
１    並列処理システム
１００    情報処理装置
１０２    パンチ穴パネル
１０４    枠部材
１０６    中央ＬＥＤ
１０８    電源ＬＥＤ
１１０    リセットスイッチ
１１２    ＵＳＢ端子
１２０    ラック
３０２    プロセッサユニット
３０４    メモリバス
３０６    メモリ
３０８    サウスブリッジ
３１０    システムコントローラ
３１０２    ファームウェア
３１０４    キャッシュメモリ
３１４    外部バス
３１６    ＵＳＢインターフェース
３１８    記憶装置
３２０    ドライブ
３２２    リムーバブルメディア
３２４    ネットワークインターフェース
３２６、Ｂ２２    温度センサ
３２８、Ｂ２０    冷却ファン
３３２    Ｉ／Ｏデバイス
３５２    メインＣＰＵコア
３５２２    オペレーティングシステム
３５２４    ファームウェア
３５２６    キャッシュメモリ
３５４    サブＣＰＵコア
３５６    ＥＩバス
３５８    メモリコントローラ
３６０    Ｉ／Ｏコントローラ
ＭＢ１０    基板
ＭＢ１２、ＭＢ１４、ＭＢ２２    ヒートシンク
ＭＢ１６    冷却ダクト
ＭＢ１８    冷却ファン
ＭＢ２０、ＭＢ２４、ＭＢ２６    ＩＣチップ
Ｂ１０    オプションボード
Ｂ１２    基板
Ｂ１４    メモリスロット
Ｂ１６    メモリ
Ｂ１８    放熱フィン
Ｂ２０    冷却ファン
Ｂ２２    温度センサ
Ｂ２４    接続端子
Ａ１０    アプリケーション
Ａ１２、Ａ１６、Ａ２０    インターフェースプログラム
Ａ１４    カーネル
Ａ１８    ランタイム・アブストラクション・サービス
Ａ２２    システムコントローラファームウェア
【図１】
2009251894.tif 000003
【図２】
2009251894.tif 000004
【図３】
2009251894.tif 000005
【図４】
2009251894.tif 000006
【図５】
2009251894.tif 000007
【図６】
2009251894.tif 000008
【図７】
2009251894.tif 000009
【図８】
2009251894.tif 000010
【図９】
2009251894.tif 000011
【図１０】
2009251894.tif 000012
【図１１】
2009251894.tif 000013