JP5699665B2 - サーバ装置、処理実行方法およびプログラム - Google Patents

サーバ装置、処理実行方法およびプログラム Download PDF

Info

Publication number
JP5699665B2
JP5699665B2 JP2011030659A JP2011030659A JP5699665B2 JP 5699665 B2 JP5699665 B2 JP 5699665B2 JP 2011030659 A JP2011030659 A JP 2011030659A JP 2011030659 A JP2011030659 A JP 2011030659A JP 5699665 B2 JP5699665 B2 JP 5699665B2
Authority
JP
Japan
Prior art keywords
processor
specific process
operating system
resource
specific
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011030659A
Other languages
English (en)
Other versions
JP2012168846A (ja
Inventor
博文 園田
博文 園田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2011030659A priority Critical patent/JP5699665B2/ja
Publication of JP2012168846A publication Critical patent/JP2012168846A/ja
Application granted granted Critical
Publication of JP5699665B2 publication Critical patent/JP5699665B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、特に、複数のプロセッサ・コアを具備し、マルチプロセッシング可能なサーバ装置、当該サーバ装置における処理実行方法およびプログラムに関する。
マルチプロセッサやマルチコアなど、複数のプロセッサ・コアを具備するサーバ装置においてオープンOS(Operating System)が動作する場合、OS上で動作する各アプリケーションプログラムに対してOS管理下のプロセッサ・コアやメモリなどのハードウェア資源を論理的に割り当てて、各アプリケーションプログラムによる処理を並列に動作させる技術が知られており、製品化されている。このような複数のプロセッサ・コアを具備するサーバ装置において、負荷が上昇してプロセッサ使用率が100%になってサーバ装置の処理能力の限界に達した場合には、1つのプロセッサ・コアを具備するサーバ装置と同様、サーバ装置全体の処理能力が低下してしまう。この場合、即時応答が要求される処理の応答も遅延してしまい、オペレータによるキーボードやマウスによる入力が待たされる他、オンライン処理の応答が遅延してネットワーク経由で接続している外部システムでタイムアウト障害を検出するおそれがある。この問題を回避する手段としては、プロセッサやメモリを増設してサーバ装置自体の処理能力を増強する方法が考えられる。
また、複数のプロセッサ・コアを具備するサーバ装置でプロセッサ・コアやメモリなどのハードウェア資源を分割し、分割された各ハードウェア資源上で複数のゲストOSを実行させるバーチャルマシンの技術が知られており、製品化されている。そして、バーチャルマシン上の各ゲストOSに割り当てるハードウェア資源を業務負荷のピークに合わせて最適化する技術に関しては複数の技術が知られている(例えば、特許文献1)。
特許第4018900号公報
本発明が解決しようとする第1の問題点は、一時的に発生する高負荷処理の処理能力不足を解決するためにプロセッサやメモリの増設を行うことはコスト効率が悪いということである。その理由は、一般的にサーバ装置で大きな処理能力が必要となる時間はサーバ装置の運用時間全体から見ると短時間であるためである。また、大きなプロセッサ負荷を必要とする処理の多くは時間がかかる処理であり、即時応答を求められていない場合が多く、必ずしも大きな処理能力を使って短時間に完了させる必要はない。
第2の問題点は、一時的に発生する高負荷処理の処理能力不足を解決するためにバーチャルマシン・システムを通常の事業者が運用することはコスト的に高額になり採用し難いことである。その理由は、バーチャルマシン・システムは一般のサーバ装置と比べてシステム自体が高額であることに加え、バーチャルマシン・システムで特定のゲストOSの一時的な高負荷時にハードウェア資源の配分を増やす場合、増やす分のハードウェア資源は負荷が低い他のゲストOSのハードウェア資源を減らすことにより確保することになるためである。特定のゲストOSのピーク負荷時の処理を最適化するようにハードウェア資源の割当を行うと、他のゲストOSに対して充分なハードウェア資源を割り当てることが出来なくなるおそれがあり、これら他のゲストOSにおける処理が滞ってしまう。大企業やデータセンターなどにおけるサーバ装置のように、大きなコンピュータ処理能力を必要とするためにハードウェア資源を充分に具備するサーバ装置では、バーチャルマシン・システムを採用してピーク負荷に対応可能な充分なハードウェア資源を割り当てる上記方法が有効であるが、小規模な事業者にとっては一般の安価なオープンサーバ装置の代替手段にはなり難い。
第3の問題点は、既存のサーバ装置を利用する場合、一時的に発生する高負荷処理の処理能力不足を解決するために処理能力を増強することができない場合があることである。その理由は、サーバ装置のスペックの制限によりプロセッサやメモリの増設ができない場合があるためである。この場合、処理能力が高いサーバ装置を新規に導入する必要があると共に、業務システムを新規サーバに移行する必要もあり、コストが大きい。
本発明は、上述の課題を解決することのできるサーバ装置、処理実行方法およびプログラムを提供することを目的としている。
この発明は上述した課題を解決するためになされたもので、本発明の一態様によるサーバ装置は、複数のプロセッサ・コアを具備してオペレーティング・システムを起動するサーバ装置であって、電源オン状態後に最初に起動されるBIOSにより生成されてOS起動時に参照されるリソーステーブルを、前記オペレーティング・システムが起動される前に書き換えて、前記オペレーティング・システムからプロセッサ・コア及びメモリのハードウェア資源を分割し、前記分割したハードウェア資源を特定処理専用として確保する資源分割手段と、前記資源分割手段により確保された特定処理専用のハードウェア資源上で動作する特定処理実行手段と、前記資源分割手段により確保された特定処理専用のハードウェア資源に、前記オペレーティング・システム上からアクセスする機能を提供するプロセッサ間通信手段と、前記オペレーティング・システム上で動作し、要求に応じて前記プロセッサ間通信手段を使って前記特定処理実行手段に特定の処理を実行させ、実行させた結果を、前記プロセッサ間通信手段を使って前記特定処理実行手段から受け取る特定処理実行管理手段とを備えたことを特徴とする。
また、本発明の一態様による処理実行方法は、複数のプロセッサ・コアを具備してオペレーティング・システムを起動するサーバ装置の実行方法であって、電源オン状態後に最初に起動されるBIOSにより生成されてOS起動時に参照されるリソーステーブルを、前記オペレーティング・システムが起動される前に書き換えて、前記オペレーティング・システムからプロセッサ・コア及びメモリのハードウェア資源を分割し、前記分割したハードウェア資源を特定処理専用として確保しておき、前記特定処理専用として確保されたハードウェア資源に、前記オペレーティング・システム上からアクセスする機能を設け、要求に応じて、前記特定処理専用として確保された特定処理専用のハードウェア資源上で特定処理を実行させることを特徴とする。
また、本発明の一態様によるプログラムは、複数のプロセッサ・コアを具備してオペレーティング・システムを起動するサーバ装置で、電源オン状態後に最初に起動されるBIOSにより生成されてOS起動時に参照されるリソーステーブルを、前記オペレーティング・システムが起動される前に書き換えて、前記オペレーティング・システムからプロセッサ・コア及びメモリのハードウェア資源を分割し、前記分割したハードウェア資源を特定処理専用として確保するためのプログラムであって、前記リソーステーブルから特定処理専用として確保すべきプロセッサ・コアのエントリを削除して、特定処理専用のプロセッサ・コアとして確保するステップと、物理メモリの一部をオペレーティング・システムから使用不可として、特定処理専用のメモリとして確保するステップとを含むことを特徴とする。
本発明によれば、コストアップやハードウェアの増設を伴うことなく、複数のプロセッサ・コアを具備するサーバ装置で、プロセッサ負荷の高い状態における、オペレータによるキーボードやマウスを使った入力操作やオンライン処理などの即時応答が要求される処理の応答遅延が発生することを防止できる。
本発明の第1の実施形態に係るサーバ装置の構成を示すブロック図である。 同実施形態におけるプロセッサ間通信用IOボードの詳細を示すブロック図である。 同実施形態における資源分割前及び資源分割後のプロセッサエントリの説明図である。 同実施形態における資源分割前及び資源分割後のシステムアドレスマップの説明図である。 同実施形態におけるシステムアドレスマップの各エントリの格納情報の説明図である。 同実施形態における特定処理専用メモリマップの説明図である。 同実施形態における特定処理用資源管理テーブルの説明図である。 一般のオープンサーバのシステム起動動作を説明するためのフローチャートである。 一般のオープンサーバのブロック図である。 本発明の第1の実施形態に係るサーバ装置の起動動作を説明するためのフローチャートである。 同実施形態においてディスクに格納されているデータブロック構成を示す図である。 同実施形態における資源分割プログラムの動作を説明するためのフローチャートである。 同実施形態における特定処理実行FWの動作を説明するためのフローチャートである。 同実施形態における特定処理管理プログラムとプロセッサ間通信ドライバの動作を説明するためのフローチャートである。 本発明の第2の実施形態に係るサーバ装置の構成を示すブロック図である。
以下、本発明の実施の形態について図面を参照して説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態に係るサーバ装置1の構成を示すブロック図である。同図に示すように、本発明の第1の実施形態に係るサーバ装置1は、4つのプロセッサ・コア2〜5(物理プロセッサ番号「0」、「6」、「2」、「4」)を具備し、Windows(登録商標)のOS(Operating System)が起動するオープンサーバ装置である。なお、サーバ装置1における4つのプロセッサ・コアは、マルチプロセッサにて実現されていてもよいし、マルチコアにて実現されていてもよい。
ここでいう「オープンサーバ装置」は、Windows(登録商標)やLinux(登録商標)等のオープンOSが起動するサーバ装置である。ただし、本発明の適用範囲は、オープンサーバ装置に限らない。すなわち、本発明はオープンOSに限らず様々なOSの起動するサーバ装置に適用可能である。
同図において、4つのプロセッサ・コア2〜5は、メモリハブ7を介して、物理メモリ6に接続される。また、4つのプロセッサ・コア2〜5は、IOハブ8を介して、ディスク用IOボード10、コンソール用コントローラ11、およびネットワークアダプタ12に接続される。更に、本実施形態においては、IOハブ8には、プロセッサ間通信用IOボード15が接続される。
ディスク用IOボード10には、ディスク13(ディスクA)及びディスク14(ディスクB)が接続される。ディスク13(ディスクA)は、Windows(登録商標)のOS起動プログラム22や、資源分割プログラム(資源分割手段)26を格納している。
コンソール用コントローラ11には、ディスプレイ81、キーボード82、マウス83等の入出力デバイスが接続される。ネットワークアダプタ12は、通信用のアダプタである。
このような複数のプロセッサ・コアを具備するオープンサーバ装置1では、プロセッサやメモリ等のハードウェア資源を、OS用と特定処理用とに分割することで、OSが動作するプロセッサの負荷上昇を抑えつつ、負荷の高い特定処理を実行可能としている。ここでいう「特定処理」とは、より具体的には、即時処理を要求される処理であり、例えば、オペレータによるキーボードやマウスを使った入力操作の処理やオンライン処理などである。
すなわち、本発明の第1の実施形態では、OSが起動される前に、資源分割プログラム26が、BIOS(Basic Input/Output System)の生成したリソーステーブルを書き換えることで、プロセッサ・コア2〜5を、OS用のプロセッサ・コア2及び3と、特定処理専用のプロセッサ・コア4及び5とに分割している。また、資源分割プログラム26により、物理メモリ6を、OS用メモリ21と特定処理専用メモリ25とに分割している。これにより、特定処理専用のプロセッサ・コア4及び5、並びに特定処理専用メモリ25は、OSから独立した、特定処理専用の資源とすることができる。
サーバ装置1は、プロセッサ負荷の高い特定の処理を実行する際に、オペレータがキーボード82やマウス83を使って行う入力操作や、オンライン処理など、即時応答が要求される処理(特定処理)が発生すると、OSから資源分割されたプロセッサ・コア4及び5、並びに特定処理専用メモリ25上で当該特定処理を実行する。これにより、OSが動作するプロセッサの負荷上昇を抑えつつ、一般にプロセッサ負荷の高い処理である、即時応答が要求される処理を実行可能となる。
このような処理を実行可能とするために、サーバ装置1は、資源分割プログラム26と、プロセッサ間通信用IOボード15と、特定処理実行FW(Firmware)(特定処理実行手段)19と、プロセッサ間通信ドライバ28と、特定処理実行管理プログラム(特定処理実行管理手段)27とを具備する。
資源分割プログラム26は、前述したように、OSが利用可能なプロセッサ・コアやメモリなどのハードウェア資源情報が書込まれた、BIOSメモリ20上のリソーステーブルを、OSが起動される前に書き換える。これにより、特定処理専用プロセッサ・コア4及び5や、特定処理専用メモリ25等の資源をOSから分離して、特定処理実行FW19用に確保する。
プロセッサ間通信用IOボード15は、図2に示すように、特定処理実行FW19用に確保するプロセッサ・コア数やメモリ容量を設定する物理スイッチ18を持ち、特定処理実行FW19で使用するプロセッサ・コア4及び5用のIO割込信号用であるIO割込信号Aを制御するIO割込信号A制御部(割込信号制御部)16と、OSで使用するプロセッサ・コア用のIO割込信号用であるIO割込信号Bを制御するIO割込信号B制御部(割込信号制御部)17とを備えている。
特定処理実行FW19は、資源分割プログラム26により確保された特定処理専用のプロセッサ・コア4及び5、並びに特定処理専用メモリ25上で、OSから独立して、特定処理を行う。
プロセッサ間通信ドライバ28は、資源分割プログラム26により確保された特定処理専用メモリ25及びプロセッサ間通信用IOボード15に、OS上のアプリケーションプログラムからアクセスする機能を提供する。このように、プロセッサ間通信用IOボード15とプロセッサ間通信ドライバ28とでプロセッサ間通信手段を構成し、特定処理専用のハードウェア資源(特定処理専用メモリ25と、特定処理専用のプロセッサ・コア4及び5と)に、OS上からアクセスする機能を提供する。
特定処理実行管理プログラム27は、OS上で動作し、オペレータや他のOS上のアプリケーションプログラムからの要求により、プロセッサ間通信ドライバ28を使って、特定処理実行FW19に特定処理を実行させて結果を応答する。
次に、本発明の第1の実施形態に係るサーバ装置1において、特定処理用の資源を確保する処理について説明する。
サーバ装置1では、電源をONされて起動すると、BIOSが動作する。そして、BIOSは、ハードウェアの診断を実施した後、プロセッサ・コア2〜5や物理メモリ6などのハードウェア資源情報を記述したリソーステーブルをBIOSメモリ20上に生成する。
図3(A)は、BIOSが生成するリソーステーブルの例を示している。
図1に示したように、サーバ装置1は、4つのプロセッサ・コア2、3、4、5を具備する。そこで、BIOSは、図3(A)に示すように、プロセッサエントリとして、4つのエントリ41、42、43、44を生成する。各エントリ41、42、43、44には、エントリタイプと、物理プロセッサ番号と、ブートフラグが記載される。なお、ここでは、物理プロセッサ番号「0」はプロセッサ・コア2、物理プロセッサ番号「2」はプロセッサ・コア4、物理プロセッサ番号「4」はプロセッサ・コア5、物理プロセッサ番号「6」はプロセッサ・コア3にそれぞれ対応している。
また、図4(A)は、BIOSが生成するシステムアドレスマップの例を示している。
ここでは、物理メモリ6が4GBの場合の例を示している。なお、システムアドレスマップのエントリに含まれる情報は、図5に示すように、領域の開始アドレス51と、領域の長さ52と、領域の属性53とから構成されている。属性「1」はメインメモリとしてOSで使用可能なメモリ領域を示し、属性「2」はリザーブ用のメモリ領域を示し、属性「3」は割込制御用メモリ領域を示し、属性「4」は割込制御用不揮発メモリ領域を示す。なお、サーバ装置1におけるシステムアドレスマップのエントリ数は、同図に示すエントリ数に限らず、様々なエントリ数を取り得る。
BIOSが動作して、ハードウェア資源情報を記述したリソーステーブルを生成すると、次に、資源分割プログラム26が動作する。そして、資源分割プログラム26は、プロセッサ間通信用IOボード15から物理スイッチ18(図2参照)の設定情報を読み込むことで、資源分割情報を取得する。
次に、資源分割プログラム26は、BIOSメモリ20上のリソーステーブルを書き換えて、リソーステーブルからプロセッサ・コア4及び5を削除して、特定処理専用プロセッサ・コア4及び5をOSから使用不可に設定することで、プロセッサ・コア4及び5を特定処理専用として確保する。また、資源分割プログラム26は、物理メモリ6の一部をOSから使用不能の領域に設定することで、特定処理専用メモリ25を確保する。
つまり、前述したように、本実施形態のサーバ装置1には、4つのプロセッサ・コア2、3、4、5が設けられており、図3(A)に示したように、BIOSは、プロセッサエントリとして、4つのエントリ41〜44を生成する。資源分割プログラム26は、これらの4つのエントリ41〜44の中から、プロセッサ・コア4(物理プロセッサ番号「2」)のエントリ42と、プロセッサ・コア5(物理プロセッサ番号「4」)のエントリ43とを削除する。これにより、図3(B)に示すように、OSから使用可能なプロセッサを示すプロセッサエントリは、プロセッサ・コア2(物理プロセッサ番号「0」)のエントリ41と、プロセッサ・コア3(物理プロセッサ番号「6」)のエントリ44だけになり、プロセッサ・コア4及び5(物理プロセッサ番号「2」、「4」)は特定処理用として確保される。
また、前述したように、物理メモリ6のアドレスマップは、図4(A)に示したように設定されている。資源分割プログラム26は、このアドレスマップの中から、図4(B)に示すように、特定処理用メモリの領域を分割する。図4(B)の例では、図4(A)に示すシステムアドレスマップのエントリ「2」で示されている約2GBのメモリ領域を、システムアドレスマップのエントリ「2」とエントリ「3」の2つの領域に分割する。そして、資源分割プログラム26は、特定処理専用に確保するメモリ領域の属性を、OSがメインメモリとして使用できないリザーブド属性(属性「2」)に設定することで、特定処理専用メモリ25を確保している。
資源分割プログラム26は、資源分割情報を取得すると、続いて、特定処理専用メモリ25の先頭に、図6及び図7に示すような特定処理用資源管理テーブル70を生成し、特定処理専用メモリ25に特定処理実行FW19を書き込んで、特定処理専用プロセッサ・コア4及び5に当該特定処理実行FWを実行させる。
図6は、物理メモリ6に確保される特定処理専用メモリ25のアドレスマップを示している。
同図に示すように、特定処理専用メモリ25は、特定処理用資源管理テーブル70と、指示受信バッファ71と、結果送信バッファ72と、特定処理FW領域73と、特定処理FWワークメモリ74とからなる。
図7は、特定処理専用メモリ25の先頭に設けられる特定処理用資源管理テーブル70の構成を示している。
同図に示すように、特定処理用資源管理テーブル70は、ヘッダ部60と、プロセッサエントリ61、62と、特定処理メモリエントリ63と、IO割込エントリ64と、IOボード情報エントリ65と、特定処理実行FW開始アドレスエントリ66とからなる。
ヘッダ部60は、ヘッダ部識別コードと、特定処理起動通知エリアとを含む。プロセッサエントリ61、62は、物理プロセッサ番号と、マスタープロセッサかスレーブプロセッサかの区別を示す属性とを含む。IO割込エントリ64は、プロセッサ間通信用IOボードの割込信号Aの割込アドレス及び割込番号を含む。IOボード情報エントリ65は、プロセッサ間通信用IOボードアクセス用のPCI(Peripheral Component Interconnect)アドレスを含む。特定処理実行FW開始アドレスエントリ66は、特定処理実行FW19の開始アドレスを含む。
特定処理専用メモリ25の先頭に特定処理用資源管理テーブル70が生成され、特定処理実行FW領域が書き込まれて、特定処理専用プロセッサ・コア4及び5が起動されると、次に、資源分割プログラム26は、OS起動プログラム22をスタートして、OS23を起動する。
OS23が起動すると、OS23にインストールされた(すなわち、OS23の一部を構成する)プロセッサ間通信ドライバ28は、OS23が設定したプロセッサ間通信用IOボード15へアクセスするための制御情報を、特定処理用資源管理テーブル70のIOボード情報エントリ65に書き込む。
次に、OS23にインストールされた特定処理実行管理プログラム27が、プロセッサ間通信ドライバ28を介して、特定処理用資源管理テーブル70のヘッダ部60にある特定処理起動通知エリアに、特定処理実行FW19の起動指示を書き込む。これにより、特定処理実行FW19は動作環境が整ったことを認識し、特定処理の実行指示待ち状態となる。
オペレータ又は他の業務プログラム24から特定処理の実行要求が発せられると、特定処理実行管理プログラム27は、プロセッサ間通信ドライバ28に特定処理実行FW19への処理要求発行を指示する。これにより、特定処理実行管理プログラム27は、特定処理専用メモリ25上の指示受信バッファ71に、特定処理実行FWに処理を実行させるための指示データを書き込み、また、プロセッサ間通信用IOボード15のIO割込信号A制御部16に、IO割込信号Aを発行させる。
特定処理実行FW19は、プロセッサ間通信用IOボード15のIO割込信号Aを検出すると、指示受信バッファ71を読み込んで指示に従って処理を実行する。処理が完了した後、特定処理実行FW19は、結果送信バッファ72に実行結果を書き込み、プロセッサ間通信用IOボード15のIO割込信号B制御部17にIO割込信号Bを発行させる。
プロセッサ間通信ドライバ28は、プロセッサ間通信用IOボード15のIO割込信号Bを検出すると結果送信バッファ72を読み込み、特定処理実行管理プログラム27に特定処理の実行結果を通知する。
特定処理実行管理プログラム27は、特定処理の要求元のオペレータ又は業務プログラム24に対して処理結果を通知する。
次に、サーバ装置1が電源ONとなった後、システムの起動が完了するまでの動作について、フローチャートを用いて説明する。
まず、図8を参照して、一般のオープンサーバ装置の電源ONからシステム起動完了までの動作を説明する。
一般のオープンサーバ装置では、電源がONすると最初にBIOSによるハードウェア資源の確認と診断を行い(ステップS1)、BIOSはハードウェア資源テーブル(リソーステーブル(図3(A))を生成する(ステップS2)。
次に、BIOSは、ディスク13(ディスクA)の先頭ブロックにあるマスターブートレコードであるブロック「0」を読み込んで、ブートストラップローダを実行する(ステップS3)。
ブートストラップローダは、マスターブートレコードに書き込まれているパーティションテーブルによりOSブートパーティションを確認し、ディスク13のOSブートパーティションの先頭ブロックを読み込んで、OS起動プログラム22を実行する(ステップS4)。
OS起動プログラム22は、BIOSが生成したリソーステーブルを参照してOSを起動する(ステップS5)。
例えば、4個のプロセッサ・コア2〜5を具備する一般のオープンサーバ装置は、図8で説明した処理により、図9に示すように、4個のプロセッサ・コア2〜5とOS用メモリ21とをOS用のハードウェア資源として使用可能な状態になり、サーバ装置の起動を完了する。なお、図9では、図1の各部と対応する部分に同一の符号を付しているが、図9のサーバ装置は、特定処理用の各部を具備しない点で、図1のサーバ装置1と異なる。
次に、本発明の第1の実施形態に係るサーバ装置1における電源ONからシステム起動完了までの動作を、フローチャートを参照して説明する。
図10は、本発明の第1の実施形態に係るサーバ装置1において、電源ONからシステム起動完了までの動作を示すフローチャートである。
図10のフローチャートは、図8のフローチャートに対して、資源分割プログラム26の読み込みと実行(ステップS6)と、プロセッサ間通信ドライバ28による特定処理用資源管理テーブル70の読み込み(ステップS7)と、プロセッサ間通信ドライバ28による特定処理用資源管理テーブル70のIOボード情報エントリ65の書き込み(ステップS8)と、特定処理実行管理プログラム27がプロセッサ間通信ドライバ28を使って特定処理用資源管理テーブル70のヘッダ部60の特定処理起動通知エリアに特定処理実行FW19の起動を通知する動作(ステップS9)を追加したものになっている。
同図のステップS3でBIOSによる処理を行った後に、ステップS6で資源分割プログラム26の読み込みを実行できるようにするためには、例えば、以下のような処理を行うようにすれば良い。
ここで、図11(A)において、一般のオープンサーバ装置では、BIOSは、ディスク13(ディスクA)の先頭ブロックにあるブロック「0」(符号31で示す)を読み込んでブートストラップローダを実行する。また、ディスク13(ディスクA)のOSブートパーティションの先頭ブロック(符号32で示す)を読み込んで、OS起動プログラム22を実行する。また、マスターブートレコードであるブロック「0」(符号31)の次のブロック(ブロック「1」)から、OSブートパーティションの先頭ブロック(符号32)の1つ手前のブロックまでの間は、OSをインストールするときにリザーブド領域に設定され、OSからは使用されない。
このような一般のオープンサーバ装置におけるデータを元に、本実施形態における処理を実行可能なデータを得るために、一般のオープンサーバにおけるブロック「0」(符号31)に書き込まれているデータを、図11(B)におけるブロック「1」(符号35で示す)にコピーし、ステップS3で実行されるブロック「0」(符号34で示す)に格納されているブートストラップローダを、ブロック「2」(符号36で示す)を読み込んで実行するプログラムに書き変える。これにより、サーバ装置1が、ステップS3の次にステップS6の資源分割プログラムの読み込みと実行を行うようにする。
図10において、ステップS6で実行される資源分割プログラム26は、BIOSメモリ20上にある資源管理情報を書き換えて、4個のプロセッサ・コア2〜5の内の2個のプロセッサ・コア4及び5と、物理メモリ6の内の特定処理専用メモリ25をOSが使用不可能なハードウェア資源として分割(OSから分離)し、特定処理実行FW19を実行させる。
ステップS7〜S9は、プロセッサ間通信ドライバ28と、特定処理実行管理プログラム27とを、OSにインストールすることにより実行される。
次に、図12を参照して、ステップS6で実行している資源分割プログラム26の動作を説明する。
まず、資源分割プログラム26は、BIOSによりプロセッサ間通信用IOボード15の割込信号Aに割り当てられた割込アドレス及び割込番号と、プロセッサ間通信用IOボード15の物理スイッチ18に設定された、特定処理専用に確保するプロセッサ・コアの数と物理メモリ容量の情報とを取得する(ステップS10)。
次に、資源分割プログラム26は、BIOSによりBIOSメモリ20上に生成されているハードウェア資源情報を書き換えて、プロセッサ・コアと物理メモリとを、特定処理専用に確保する(ステップS11)。
ステップS11で4個のプロセッサ・コアのうち2個のプロセッサ・コアを特定処理専用に確保する場合、資源分割プログラム26は、図3(A)に示すハードウェア資源情報中のプロセッサエントリから2つのプロセッサエントリを削除して、図3(B)のように書き換える。
また、ステップS11で4GBのメモリから約1GBのメモリを特定処理専用に確保する場合、資源分割プログラム26は、図4(A)に示すシステムアドレスマップのエントリ「2」で示されている約2GBのメモリ領域を、図4(B)に示すメモリ資源分割後のシステムアドレスマップのエントリ「2」とエントリ「3」の2つの領域に分割し、特定処理専用に確保するメモリ領域の属性を、OSがメインメモリとして使用できないリザーブド属性「2」に設定する。
次に、資源分割プログラム26は、特定処理用資源管理テーブル70(図7)を生成し、特定処理専用メモリ25の先頭に書き込む(ステップS12)。
次に、資源分割プログラム26は、ディスク13(ディスクA)のブロック「6」〜ブロック「14」(図11(B)において符号37で示す)から特定処理実行FWを読み込んで、特定処理専用メモリ25に書き込む(ステップS13)。
次に、資源分割プログラム26は、特定処理用プロセッサ・コア4及び5を起動して、特定処理実行FW19の実行を開始させる(ステップS14)。
次に、ディスク13(ディスクA)の先頭ブロック(図11の符号31)のデータが格納されているブロック「1」(図11の符号35)を読み出して、オリジナルの(一般のサーバ装置で実行されるブートストラップローダと同様の)ブートストラップローダを実行する(ステップS15)。
次に、ステップS14で起動された特定処理専用プロセッサ・コア4及び5で実行される特定処理実行FW19の動作について、図13のフローチャートを参照して説明する。
図13において、特定処理実行FW19は、特定処理用資源管理テーブル70(図7)のプロセッサエントリ61、62の情報と自身が動作しているプロセッサ・コアの物理プロセッサ番号とを比較して、自身が動作しているプロセッサ・コアがスレーブプロセッサか否かを判定する(ステップS20)。
スレーブプロセッサであると判定した場合(ステップS20:Yes)、マスタープロセッサからの指示により処理を実行する動作となる(ステップS30)。
一方、マスタープロセッサであると判定した場合(ステップS20:No)、特定処理実行FW19は、特定処理用資源管理テーブル70のヘッダ部60にある特定処理起動通知エリアの読み込みを行い(ステップS21)、FW起動通知が来るのを待ち合わせる(ステップS22)。
特定処理の実行環境が整って特定処理実行管理プログラム27からFW起動通知が来た後は(ステップS22:Yes)、特定処理実行FW19は、プロセッサ間通信用IOボード15からのIO割込信号Aの待ち合わせを行う(ステップS23、S24)。IO割込信号Aを検出していない場合(ステップS24:No)、ステップS23に戻り、特定処理実行FW19は、引き続きIO割込信号Aの待ち合わせを行う。
一方、IO割込信号Aを検出すると(ステップS24:Yes)、特定処理実行FW19は、指示受信バッファ71の読み込みを行い(ステップS25)、特定処理実行管理プログラム27の指示内容を実行する(ステップS26)。
指示内容の実行を完了すると、特定処理実行FW19は、結果送信バッファ72へ実行結果の書き込みを行い(ステップS27)、プロセッサ間通信用IOボード15へIO割込信号Bの送信を指示する(ステップS28)。その後、ステップS23に戻り、特定処理実行FW19は、プロセッサ間通信用IOボード15からのIO割込信号Aを待ち合わせる。
次に、特定処理実行管理プログラム27の動作について、図14のフローチャートを参照して説明する。
図14において、オペレータ又は他の業務プログラムから特定処理の処理要求が来たとき、特定処理実行管理プログラム27はプロセッサ間通信ドライバ28に特定処理実行FW19への処理要求発行を指示する(ステップS40)。
当該指示を受けたプロセッサ間通信ドライバ28は、特定処理実行管理プログラム27から受け取った特定処理実行FW19に対する指示情報を特定処理専用メモリ25上の指示受信バッファ71に書き込み、プロセッサ間通信用IOボード15のIO割込信号A制御部16にIO割込信号Aを発行させる。
次に、プロセッサ間通信ドライバ28は、プロセッサ間通信用IOボード15からのIO割込信号Bの待ち合わせを行う(ステップS42、S43)。IO割込信号Bを検出していない場合(ステップS43:No)、ステップS42に戻り、プロセッサ間通信ドライバ28は、引き続き、IO割込信号Bの待ち合わせを行う。
一方、IO信号Bを検出すると(ステップS43:Yes)、プロセッサ間通信ドライバ28は、特定処理専用メモリ25上の結果送信バッファ72から処理の実行結果を読み出し、読み出した実行結果を、特定処理実行管理プログラム27に通知する(ステップS44)
処理の実行結果を受け取った特定処理実行管理プログラム27は、特定処理の要求元に特定処理の処理結果を通知する(ステップS45)。
なお、サーバ装置1が、高負荷の処理を特定処理として実行するようにしてもよい。例えば、特定処理実行管理プログラム27が、サーバ装置で実行する業務に合わせてプロセッサ負荷が高く時間がかかる特定の処理を特定処理として選択し、特定処理実行FW19に実行させるようにする。
以上のように、サーバ装置1は、即時処理を要求される処理あるいはプロセッサ負荷の高い処理である特定処理を、OSから資源分割されたプロセッサ・コア及びメモリ上で実行する。これにより、サーバ装置1において、OSが動作するプロセッサの負荷上昇を抑えつつ、即時処理を要求される処理やプロセッサ負荷の高い処理を実行可能である。
そして、サーバ装置1は、プロセッサやメモリの増設や、処理能力の高い高価なバーチャルマシン・システム等のサーバ装置の導入を行うことなく、上記のように、OSが動作するプロセッサの負荷上昇を抑えつつ、即時処理を要求される処理やプロセッサ負荷の高い処理を実行可能である。
また、サーバ装置のスペックの制限によりサーバ装置1では、プロセッサやメモリの増設ができない場合でも、上記のように、OSが動作するプロセッサの負荷上昇を抑えつつ、即時処理を要求される処理やプロセッサ負荷の高い処理を実行可能である。
このように、サーバ装置1では、コストアップやハードウェアの増設を伴うことなく、即時処理を要求される処理またはプロセッサ負荷の高い処理である特定処理を実行した場合に、オペレータによるキーボードやマウスを使った入力操作やオンライン処理などの即時応答が要求される処理で応答遅延が発生することを防止できる。
また、資源分割プログラム26は、OSが起動される前に、リソーステーブルを書き換えて、特定処理専用のハードウェア資源(プロセッサ・コアおよびメモリ)を確保するので、サーバ装置1が、特定処理専用のハードウェア資源を割り当て済みのリソーステーブルを予め具備する必要が無い。サーバ装置1の構成を一般のサーバ装置に近い構成と出来る点で、サーバ装置1の製造コストを低減することができる。
また、サーバ装置1が、プロセッサ間通信用IOボード15を具備し、IO割込信号AおよびIO割込信号Bの制御を行うことにより、OSと特定処理実行FWとの間の通信量(プロセッサ2および3と、プロセッサ4および5との間の通信量)が多い場合にも、適切に通信を行ってサーバ装置1全体の処理速度を維持することができる。
<第2の実施形態>
次に、本発明の他の実施形態について説明する。図15は、本発明の第2の実施形態を示している。この第2の実施形態におけるサーバ装置2は、その基本的構成は第1の実施形態におけるサーバ装置1と同様であるが、プロセッサ間通信用IOボード15を除いた構成となっている。なお、図15において、図1の各部に対応して同様の機能を有する部分には、同一符号を付して、その説明を省略する。
特定処理実行管理プログラム27と特定処理実行FW19間の通信性能があまり要求されない場合、図15に示すように、プロセッサ間通信用IOボード15を外した構成とし、プロセッサ間通信ドライバ28と特定処理実行FW19の間で、図6における指示受信バッファ71と結果送信バッファ72を使ったメモリアクセスインタフェースのみでプロセッサ間通信を実現することが可能である。
この場合、特定処理実行FW19は、指示受信バッファ71を一定の時間間隔で読み出して特定処理の実行指示が来ているか否かを確認する。指示が来たことを検出すると、特定処理実行FW19は、指示内容を受け取って指示受信バッファ71に指示受け取り済みであることを書き込み、指示された処理を実行する。指示された処理が終了したら、特定処理実行FW19は結果送信バッファ71に処理結果を書き込む。
プロセッサ間通信ドライバ28は、指示受信バッファ71に実行する処理の指示を書き込んだ後、結果送信バッファ72を一定の時間間隔で読み出して特定処理の実行結果が格納されているか確認する。プロセッサ間通信ドライバ28は、結果が格納されていることを検出すると、処理結果を受け取って結果送信バッファ72に結果受け取り済みであることを書き込む。
プロセッサ間通信用IOボード15上の物理スイッチ18を読み込むことで実現していた資源分割情報の取得に関しては、資源分割プログラム26に初期値として値を持ち、特定処理実行管理プログラム27から設定を変更可能とすることにより、次回のシステム起動時から設定した資源分割情報が有効となる。
このようにして、この例ではプロセッサ間通信用IOボード15を用いることなく、オープンOS用プロセッサと特定処理専用プロセッサ間の通信を実現している。これにより、コストダウンを図ることができる。また、既存のオープンサーバ装置にIOボード用空きスロットがない場合でも実現が可能となる。
なお、サーバ装置1、2の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
1、2:サーバ装置
2〜5:プロセッサ・コア
6:物理メモリ
7:メモリハブ
8:IOハブ
10:ディスク用IOボード
11:コンソール用コントローラ
12:ネットワークアダプタ
13、14:ディスク
15:プロセッサ間通信用IOボード
16:IO割込信号A制御部
17:IO割込信号B制御部
18:物理スイッチ
19:特定処理実行FW
20:BIOSメモリ
21:OS用メモリ
22:OS起動プログラム
24:業務プログラム
25:特定処理専用メモリ
26:資源分割プログラム
27:特定処理実行管理プログラム
28:プロセッサ間通信ドライバ


Claims (5)

  1. 複数のプロセッサ・コアを具備してオペレーティング・システムを起動するサーバ装置であって、
    電源オン状態後に最初に起動されるBIOSにより生成されてOS起動時に参照されるリソーステーブルを、前記オペレーティング・システムが起動される前に書き換えて、前記オペレーティング・システムからプロセッサ・コア及びメモリのハードウェア資源を分割し、前記分割したハードウェア資源を特定処理専用として確保する資源分割手段と、
    前記資源分割手段により確保された特定処理専用のハードウェア資源上で動作する特定処理実行手段と、
    前記資源分割手段により確保された特定処理専用のハードウェア資源に、前記オペレーティング・システム上からアクセスする機能を提供するプロセッサ間通信手段と、
    前記オペレーティング・システム上で動作し、要求に応じて前記プロセッサ間通信手段を使って前記特定処理実行手段に特定の処理を実行させ、実行させた結果を、前記プロセッサ間通信手段を使って前記特定処理実行手段から受け取る特定処理実行管理手段と
    を備えたことを特徴とするサーバ装置。
  2. 前記資源分割手段は、特定処理専用として確保すべきプロセッサ・コアのエントリの削除を行い書き換えて、前記特定処理専用として確保すべきプロセッサ・コアを前記オペレーティング・システムから使用不可に設定することで分割し、物理メモリの一部をオペレーティング・システムから使用不可として、特定処理専用のメモリとして分割し、分割したハードウェア資源を前記特定処理専用として確保することを特徴とする請求項1に記載のサーバ装置。
  3. 前記プロセッサ間通信手段は、前記オペレーティング・システムが使用するハードウェア資源用と特定処理の実行のためのハードウェア資源用の2つの割込信号用の割込み信号制御部を有することを特徴とする請求項1又は2に記載のサーバ装置。
  4. 複数のプロセッサ・コアを具備してオペレーティング・システムを起動するサーバ装置の実行方法であって、
    電源オン状態後に最初に起動されるBIOSにより生成されてOS起動時に参照されるリソーステーブルを、前記オペレーティング・システムが起動される前に書き換えて、前記オペレーティング・システムからプロセッサ・コア及びメモリのハードウェア資源を分割し、前記分割したハードウェア資源を特定処理専用として確保しておき、
    前記特定処理専用として確保されたハードウェア資源に、前記オペレーティング・システム上からアクセスする機能を設け、
    要求に応じて、前記特定処理専用として確保された特定処理専用のハードウェア資源上で特定処理を実行させる
    ことを特徴とする処理実行方法。
  5. 複数のプロセッサ・コアを具備してオペレーティング・システムを起動するサーバ装置で、電源オン状態後に最初に起動されるBIOSにより生成されてOS起動時に参照されるリソーステーブルを、前記オペレーティング・システムが起動される前に書き換えて、前記オペレーティング・システムからプロセッサ・コア及びメモリのハードウェア資源を分割し、前記分割したハードウェア資源を特定処理専用として確保するためのプログラムであって、
    前記リソーステーブルから特定処理専用として確保すべきプロセッサ・コアのエントリを削除して、特定処理専用のプロセッサ・コアとして確保するステップと、
    物理メモリの一部をオペレーティング・システムから使用不可として、特定処理専用のメモリとして確保するステップと
    を含むことを特徴とするプログラム。
JP2011030659A 2011-02-16 2011-02-16 サーバ装置、処理実行方法およびプログラム Expired - Fee Related JP5699665B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011030659A JP5699665B2 (ja) 2011-02-16 2011-02-16 サーバ装置、処理実行方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011030659A JP5699665B2 (ja) 2011-02-16 2011-02-16 サーバ装置、処理実行方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2012168846A JP2012168846A (ja) 2012-09-06
JP5699665B2 true JP5699665B2 (ja) 2015-04-15

Family

ID=46972922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011030659A Expired - Fee Related JP5699665B2 (ja) 2011-02-16 2011-02-16 サーバ装置、処理実行方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5699665B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113010215B (zh) * 2021-03-12 2023-03-21 山东英信计算机技术有限公司 一种操作系统快速重启的方法、装置、设备及可读介质
CN114035771A (zh) * 2021-11-17 2022-02-11 河南许继仪表有限公司 一种基于自平衡技术的物联管理终端资源共享系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033877A (ja) * 2006-06-29 2008-02-14 Mitsubishi Electric Corp 情報処理装置及びos起動方法及びプログラム
JP5437556B2 (ja) * 2006-07-12 2014-03-12 日本電気株式会社 情報処理装置およびプロセッサ機能変更方法

Also Published As

Publication number Publication date
JP2012168846A (ja) 2012-09-06

Similar Documents

Publication Publication Date Title
JP4921384B2 (ja) メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム
US8271743B2 (en) Automated paging device management in a shared memory partition data processing system
US9146766B2 (en) Consistent unmapping of application data in presence of concurrent, unquiesced writers and readers
JP5212360B2 (ja) 制御プログラム、制御システムおよび制御方法
JP6029550B2 (ja) 計算機の制御方法及び計算機
US9454397B2 (en) Data processing systems
US20160077884A1 (en) Dynamic allocation and assignment of virtual functions within fabric
WO2012066640A1 (ja) 計算機システム、マイグレーション方法及び管理サーバ
WO2017019901A1 (en) Multiprocessing within a storage array system executing controller firmware designed for a uniprocessor environment
US10289564B2 (en) Computer and memory region management method
JP2016167143A (ja) 情報処理システムおよび情報処理システムの制御方法
KR20110094764A (ko) 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
JP2007133544A (ja) 障害情報解析方法及びその実施装置
JP5124430B2 (ja) 仮想マシンの移行方法、サーバ、及び、プログラム
EP3572940A1 (en) Method and device for scheduling vcpu thread
CN115480931A (zh) 一种核间通信处理方法、装置及计算机系统
US20150082014A1 (en) Virtual Storage Devices Formed by Selected Partitions of a Physical Storage Device
JP5492731B2 (ja) 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
JP5699665B2 (ja) サーバ装置、処理実行方法およびプログラム
JP6198858B2 (ja) 計算機、及び、ハイパバイザによる資源スケジューリング方法
US9448871B2 (en) Information processing device and method for selecting processor for memory dump processing
JP2011221634A (ja) 計算機システム、論理区画管理方法及び論理分割処理プログラム
US20140372806A1 (en) Virtual machine system and information storing processing method
US20140053162A1 (en) Thread processing method and thread processing system
CN116324706A (zh) 分离式存储器池分配

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150202

R150 Certificate of patent or registration of utility model

Ref document number: 5699665

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees