IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7472687情報処理装置、情報処理プログラム、及び、情報処理方法
<>
  • 特許-情報処理装置、情報処理プログラム、及び、情報処理方法 図1
  • 特許-情報処理装置、情報処理プログラム、及び、情報処理方法 図2
  • 特許-情報処理装置、情報処理プログラム、及び、情報処理方法 図3
  • 特許-情報処理装置、情報処理プログラム、及び、情報処理方法 図4
  • 特許-情報処理装置、情報処理プログラム、及び、情報処理方法 図5
  • 特許-情報処理装置、情報処理プログラム、及び、情報処理方法 図6
  • 特許-情報処理装置、情報処理プログラム、及び、情報処理方法 図7
  • 特許-情報処理装置、情報処理プログラム、及び、情報処理方法 図8
  • 特許-情報処理装置、情報処理プログラム、及び、情報処理方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-15
(45)【発行日】2024-04-23
(54)【発明の名称】情報処理装置、情報処理プログラム、及び、情報処理方法
(51)【国際特許分類】
   G06F 1/329 20190101AFI20240416BHJP
   G06F 1/3206 20190101ALI20240416BHJP
   G06F 1/3212 20190101ALI20240416BHJP
   G06F 1/3246 20190101ALI20240416BHJP
   G06F 1/30 20060101ALI20240416BHJP
   H02J 1/00 20060101ALI20240416BHJP
   H02J 7/00 20060101ALI20240416BHJP
【FI】
G06F1/329
G06F1/3206
G06F1/3212
G06F1/3246
G06F1/30
H02J1/00 304H
H02J1/00 307
H02J7/00 302D
【請求項の数】 8
(21)【出願番号】P 2020115399
(22)【出願日】2020-07-03
(65)【公開番号】P2022013086
(43)【公開日】2022-01-18
【審査請求日】2023-04-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100092978
【弁理士】
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】斉 福利
(72)【発明者】
【氏名】前田 直昭
(72)【発明者】
【氏名】印藤 隆夫
【審査官】白石 圭吾
(56)【参考文献】
【文献】特開2007-128447(JP,A)
【文献】特開2013-218371(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/26-1/3296
G06F 9/455-9/54
G06F 12/16
H02J 1/00-1/16
H02J 7/00-7/12;7/34-7/36
H02J 9/00-11/00
(57)【特許請求の範囲】
【請求項1】
複数のプロセッサと、
電力供給源の停電に応じて、前記電力供給源からの電力を蓄積するバッテリから出力される電力を前記複数のプロセッサのそれぞれに供給する電源部と、を備え、
前記複数のプロセッサのうちの第1プロセッサは、
前記停電の検出に応じて、前記複数のプロセッサのうちの1以上の第2プロセッサの各々を、プロセスを実行可能な第1電力モード及び前記第1電力モードよりも消費電力が小さい第2電力モードのうちの前記第2電力モードに移行させる第1制御と、
前記1以上の第2プロセッサの各々が前記第2電力モードに移行した場合、前記1以上の第2プロセッサの各々を所定順に、前記第1電力モードに移行させ、前記第1電力モードに移行させた第2プロセッサが実行する前記プロセスにより利用される資源を解放させ、前記第2電力モードに移行させる第2制御と、
を実行する制御部、
を備える、情報処理装置。
【請求項2】
前記制御部は、
前記第2制御後に、前記1以上の第2プロセッサの各々で実行されるプロセスの終了指示を前記1以上の第2プロセッサの各々に送信し、前記1以上の第2プロセッサの各々を所定順に、前記第1電力モードに移行させ、前記第1電力モードに移行させた第2プロセッサが実行する前記プロセスを前記終了指示に応じて終了させる第3制御を実行する、
請求項1に記載の情報処理装置。
【請求項3】
揮発性記憶領域と、
不揮発性記憶領域と、を備え、
前記制御部は、
前記第3制御後に、前記揮発性記憶領域に記憶されたデータを前記不揮発性記憶領域に書き込み、前記情報処理装置を停止する第4制御を実行する、
請求項2に記載の情報処理装置。
【請求項4】
前記制御部は、前記終了指示の対象プロセスから、前記第4制御を実行するプロセスを除外する、
請求項3に記載の情報処理装置。
【請求項5】
前記第1プロセッサは、前記複数のプロセッサのうちの、前記電源部で検知される前記停電の発生を通知する割り込み通知を受信するプロセッサであり、
前記制御部は、前記第1制御において、前記1以上の第2プロセッサの各々に対して、前記第2電力モードへの移行を指示する割り込み通知を送信する、
請求項1~請求項4のいずれか1項に記載の情報処理装置。
【請求項6】
前記1以上の第2プロセッサの各々は、
前記第1制御において、前記割り込み通知の受信に応じて起動したハンドラにより前記第2電力モードに移行し、
前記第2制御において、前記第1電力モードへの移行の指示を受信すると、前記ハンドラを終了し、前記資源を解放し、前記第2プロセッサで実行される前記プロセスよりも実行優先度が高く設定された、前記プロセスを終了させるためのスレッドを起動して、前記第2電力モードに移行する、
請求項5に記載の情報処理装置。
【請求項7】
複数のプロセッサと、電力供給源の停電に応じて、前記電力供給源からの電力を蓄積す
るバッテリから出力される電力を前記複数のプロセッサのそれぞれに供給する電源部と、を備えるコンピュータに、
前記停電の検出に応じて、前記複数のプロセッサのうちの1以上のプロセッサの各々を、プロセスを実行可能な第1電力モード及び前記第1電力モードよりも消費電力が小さい第2電力モードのうちの前記第2電力モードに移行させる第1制御と、
前記1以上のプロセッサの各々が前記第2電力モードに移行した場合、前記1以上のプロセッサの各々を所定順に、前記第1電力モードに移行させ、前記第1電力モードに移行させたプロセッサが実行する前記プロセスにより利用される資源を解放させ、前記第2電力モードに移行させる第2制御と、
を含む処理を実行させる、情報処理プログラム。
【請求項8】
複数のプロセッサと、電力供給源の停電に応じて、前記電力供給源からの電力を蓄積するバッテリから出力される電力を前記複数のプロセッサのそれぞれに供給する電源部と、を備えるコンピュータが、
前記停電の検出に応じて、前記複数のプロセッサのうちの1以上のプロセッサの各々を、プロセスを実行可能な第1電力モード及び前記第1電力モードよりも消費電力が小さい第2電力モードのうちの前記第2電力モードに移行させる第1制御と、
前記1以上のプロセッサの各々が前記第2電力モードに移行した場合、前記1以上のプロセッサの各々を所定順に、前記第1電力モードに移行させ、前記第1電力モードに移行させたプロセッサが実行する前記プロセスにより利用される資源を解放させ、前記第2電力モードに移行させる第2制御と、
を含む処理を実行する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理プログラム、及び、情報処理方法に関する。
【背景技術】
【0002】
サーバ及びストレージ装置等の情報処理装置では、停電等の突然の電源断によるデータ喪失を回避するために、無停電電源装置(UPS;Uninterruptible Power Supply)又は内蔵バッテリ等の電源装置(以下、「バッテリ」と表記する)を備える場合がある。
【0003】
情報処理装置では、プロセッサの動作中に電源断が発生した場合、このようなバッテリにより電力が供給される間に、メモリ上のデータをディスク等の記憶装置に書き戻すことで、データを保護することができる。
【0004】
近年、プロセッサのコア数の増加及びプロセッサ数の増加に伴い、情報処理装置がプロセッサ性能を最大限に利用して動作する(フル稼働する)際の消費電力が増大しつつある。このため、バッテリが供給可能な電力量では、プロセッサがメモリ上のデータを記憶装置に書き戻すための動作時間を確保できない場合があり、これによりデータ喪失が発生する可能性がある。
【0005】
バッテリを大容量化する(変更する)等のハードウェアレベルでの対応が困難な場合、又は、コスト削減のために、ソフトウェアによる制御により、プロセッサがメモリ上のデータを記憶装置に書き戻すための動作時間を確保することが考えられる。
【0006】
例えば、電源断を検知した際に、実行する全てのプロセスを1つのプロセッサに移動させ、他のプロセッサをアイドル状態にする第1の手法、又は、データ保存を行なうための1つのプロセッサを除いた他のプロセッサを緊急停止する第2の手法が考えられる。アイドル状態は、プロセッサが処理を行なっていない状態である。
【先行技術文献】
【特許文献】
【0007】
【文献】特開平11-194846号公報
【文献】特開平08-087365号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
第1の手法では、安全のために全プロセスを1つのプロセッサに移動させるための時間がかかり、電源断が検知されてからサーバの消費電力が低下し始めるまでの期間が長期化することがある。バッテリの供給電力は、電力源(例えば、分電盤等のAC電源の供給源)から供給される電力と比較して小さい場合が多い。
【0009】
このため、サーバの消費電力の低下が、バッテリ駆動に切り替わることによる供給電力量の低下に間に合わない、換言すれば、バッテリ容量が不足し、サーバが停止することでデータ喪失が発生する可能性がある。
【0010】
第2の手法では、他のプロセッサを緊急停止することより、当該他のプロセッサ上で動作していたプロセス等のためのロック等の種々の資源解放ができない場合がある。なお、資源としては、例えば、メモリ或いはキャッシュ等の共有資源、或いは、当該共有資源を利用することを示す情報(例えばフラグ)等が挙げられる。このため、残りの1つのプロセッサは、当該資源の解放待ち等によって、システムを正常に終了させることができず、メモリのデータの書き戻しに失敗する可能性がある。
【0011】
1つの側面では、本発明は、情報処理装置の消費電力を短時間で低下させることを目的の1つとする。
【課題を解決するための手段】
【0012】
1つの側面では、情報処理装置は、複数のプロセッサと、電力供給源の停電に応じて、前記電力供給源からの電力を蓄積するバッテリから出力される電力を前記複数のプロセッサのそれぞれに供給する電源部と、を備えてよい。前記複数のプロセッサのうちの第1プロセッサは、第1制御と、第2制御とを実行する制御部を備えてよい。前記第1制御は、前記停電の検出に応じて、前記複数のプロセッサのうちの1以上の第2プロセッサの各々を、プロセスを実行可能な第1電力モード及び前記第1電力モードよりも消費電力が小さい第2電力モードのうちの前記第2電力モードに移行させてよい。前記第2制御は、前記1以上の第2プロセッサの各々が前記第2電力モードに移行した場合、前記1以上の第2プロセッサの各々を所定順に、前記第1電力モードに移行させ、前記第1電力モードに移行させた第2プロセッサが実行する前記プロセスにより利用される資源を解放させ、前記第2電力モードに移行させてよい。
【発明の効果】
【0013】
1つの側面では、情報処理装置の消費電力を短時間で低下させることができる。
【図面の簡単な説明】
【0014】
図1】一実施形態に係るサーバのハードウェア構成例を示すブロック図である。
図2】電源断が発生した場合のシステムの消費電力の一例を示す図である。
図3】電源断が発生した場合のシステムの消費電力の一例を示す図である。
図4】一実施形態に係るサーバのシステムの消費電力の一例を示す図である。
図5】一実施形態に係るサーバの機能構成例を示すブロック図である。
図6】一実施形態に係るサーバの消費電力低下制御の動作例を説明するための図である。
図7】一実施形態に係るサーバの生成部の動作例を説明するためのフローチャートである。
図8】一実施形態に係るサーバの消費電力低下制御の動作例を説明するためのフローチャートである。
図9】コンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【0016】
〔1〕一実施形態
〔1-1〕一実施形態の構成例
図1は、一実施形態に係るサーバ1のハードウェア(HW;Hardware)構成例を示すブロック図である。サーバ1は、複数のプロセッサ2aを備える情報処理装置又はコンピュータの一例である。
【0017】
図1に示すように、サーバ1は、電源断が発生する場合の消費電力の低下制御に関連するHW構成に着目すると、例示的に、プロセッサ群2、メモリ3、記憶装置4、電力供給部5及び内蔵バッテリ6を備えてよい。また、電力供給部5には、無停電電源装置(以下、「UPS」と表記する場合がある)7及び電力源8が接続されてよい。
【0018】
プロセッサ群2は、複数(図1では4つ)のプロセッサ2a(それぞれ「プロセッサ
#0」~「プロセッサ#3」と表記)を備えてよい。プロセッサ2aは、サーバ1に供給される電力を利用して動作し、種々の制御や演算を行なう集積回路(IC;Integrated Circuit)であり、演算処理装置の一例である。プロセッサ2aは、複数のコアを備えるマルチコアプロセッサであってもよい。
【0019】
プロセッサ2aとしては、例えば、CPU、MPU、GPU、DSP、ASIC、及び、PLD(例えばFPGA)等の集積回路のいずれか1つ、又は、これらの2以上の組み合わせであってよい。なお、CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、DSPはDigital Signal Processorの略称である。ASICはApplication Specific Integrated Circuitの略称であり、PLDはProgrammable Logic Deviceの略称であり、FPGAはField Programmable Gate Arrayの略称である。
【0020】
メモリ3は、揮発性記憶領域の一例であり、プロセッサ2aが実行するプログラム及びデータを記憶する記憶領域を備えてよい。メモリ3としては、例えば、DRAM(Dynamic Random Access Memory)等の揮発性メモリが挙げられる。
【0021】
記憶装置4は、不揮発性記憶領域の一例であり、種々のプログラム及びデータ等の情報を格納する装置である。記憶装置4としては、HDD(Hard Disk Drive)等の磁気ディスク装置、SSD(Solid State Drive)等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
【0022】
プロセッサ群2(複数のプロセッサ2a)、メモリ3及び記憶装置4を含む、サーバ1内の複数のコンポーネント(複数のモジュール)のそれぞれは、バスを介して相互に通信可能に接続されてよい。
【0023】
電力供給部5は、PSU(Power Supply Unit)等の電力供給装置であってよい。例えば、電力供給部5は、内蔵バッテリ6、UPS7及び電力源8の少なくともいずれか1つから供給される電力を、AC/DC変換及び各コンポーネントに適した電圧に変換して、電力供給路(図1の一点鎖線参照)を介して各コンポーネントに供給してよい。例えば、電力供給部5は、電圧変換後の電力を各コンポーネントの実装基板(例えばシステムボード)を介して各コンポーネントに供給してもよい。
【0024】
内蔵バッテリ6は、電力を蓄積する蓄電装置であり、電源装置(バッテリ)の一例である。例えば、内蔵バッテリ6は、電力供給部5から供給される電力を蓄積し、電力供給部5からの電力の供給が停止(例えば電力源8から電力供給部5への電力の供給が停止)した場合に、蓄積する電力を電力供給部5に供給する。
【0025】
UPS7は、電力を蓄積する蓄電装置であり、電源装置(バッテリ)の一例である。例えば、UPS7は、電力源8から供給される電力を蓄積するとともに、電力供給部5に電力を供給する。電力源8からの電力の供給が停止した場合、UPS7は、蓄積する電力を電力供給部5に供給する。
【0026】
電力源8は、電力供給源の一例であり、例えば、分電盤等のAC電源の供給源である。図1の例では、電力源8は、電力供給路を介して電力を電力供給部5及びUPS7に供給する。
【0027】
サーバ1は、内蔵バッテリ6及びUPS7等の電源装置(バッテリ)により、停電等の突然の電源断(電力源8からの電力供給の停止)が発生しても、電力供給部5を介してバッテリから供給される電力により一定時間動作することができる。
【0028】
換言すれば、電力供給部5は、電力源8の停電に応じて、電力源8からの電力を蓄積するバッテリから出力される電力を複数のプロセッサ2aのそれぞれに供給する電源部の一例である。
【0029】
なお、図1の例では、電力供給部5に内蔵バッテリ6及びUPS7の双方が接続されるものとしたが、電力供給部5には、内蔵バッテリ6及びUPS7のいずれか一方が接続され、他方が省略されてもよい。また、電力供給部5と電力源8との間の接続は省略されてもよい。
【0030】
図2及び図3は、電源断が発生した場合のシステムの消費電力の一例を示す図である。図2及び図3を参照し、電力源8から供給される電力で動作するサーバ1のシステムにおいて、時刻t1で電源断によりバッテリ駆動が開始される場合の一例を説明する。
【0031】
図2に例示するように、プロセッサ2aは、時刻t1以降もバッテリの供給電力(電力量)p2を超えた消費電力p1で動作を継続すると、システムを停止するための停止処理の継続が困難となる。停止処理には、メモリ3に記憶されたデータ(ユーザデータ及びシステムデータ)を記憶装置4に書き戻す(保存する)書戻処理を含んでよい。
【0032】
図3に例示するように、プロセッサ2aが時刻t1以降にバッテリの供給電力p2以下である消費電力p3で動作を行なう場合、プロセッサ2aは、バッテリの供給電力を用いて停止処理を適切に実施することができる。
【0033】
なお、上述した第1の手法のように、1つのプロセッサ2aに全プロセスを移動させてから停止処理を実行させる場合、図2に例示するように、全プロセスの移動処理が時刻t1以降も継続することになる。このため、バッテリ容量が不足し、停止処理が未完了の状態でサーバ1が停止することでデータ喪失が発生する可能性がある。
【0034】
また、上述した第2の手法のように、他のプロセッサ2aを緊急停止する場合、システムの消費電力は、図3に例示するようにバッテリの供給電力p2以下であるp3に低下し得る。しかし、当該他のプロセッサ2aにおける資源解放ができない場合、残りの1つのプロセッサ2aは、当該資源の解放待ち等によって停止処理を完了できず、消費電力p3により動作を継続することになる。この場合においても、プロセッサ2aの動作継続によって、バッテリ容量が不足し、停止処理が未完了の状態でサーバ1が停止することでデータ喪失が発生する可能性がある。
【0035】
そこで、一実施形態では、ソフトウェアによる制御によって、消費電力を短時間で低下させる手法を説明する。これにより、例えば、バッテリの供給電力内で停止処理を適切に実施することができ、データ保護を実現することができる。
【0036】
〔1-2〕一実施形態に係るサーバによる処理の一例
まず、一実施形態に係るサーバ1による処理の一例を簡単に説明する。
【0037】
サーバ1は、例えば、以下の処理(i)及び(ii)を実行してよい。なお、以下の説明において、複数のプロセッサ2aのうちの、電源断(停電)を検出したプロセッサ2aを親プロセッサ2aと表記し、1以上の他のプロセッサ2aの各々を子プロセッサ2aと表記する。親プロセッサ2aは第1プロセッサの一例であり、子プロセッサ2aは第2プロセッサの一例である。
【0038】
(i)親プロセッサ2aは、電源断の検出に応じて、1以上の子プロセッサ2aの各々を、プロセスを実行可能な第1電力モード及び第1電力モードよりも消費電力が小さい第2電力モードのうちの第2電力モードに移行させる第1制御を実行する。
【0039】
第1電力モードは、例えば、電源断前のシステムでプロセッサ2aが動作する電力モードであり、第2電力モードは、例えば、低消費電力モード、一例として最低消費電力モードである。
【0040】
例えば、親プロセッサ2aは、1以上の子プロセッサ2aに、消費電力を低下させることを通知してよい。通知を受信した子プロセッサ2aの各々は、電力に関する動作モードを第2電力モードに移行する。
【0041】
(ii)親プロセッサ2aは、1以上の子プロセッサ2aの各々が第2電力モードに移行した場合、各子プロセッサ2aを所定順に、第1電力モードに移行させ、自身の子プロセッサ2aが実行するプロセスにより利用される資源を解放させ、第2電力モードに移行させる第2制御を実行する。
【0042】
例えば、親プロセッサ2aは、1以上の子プロセッサ2aを1つずつ元の動作モード(状態)に戻し、当該プロセスが利用中のロック等のOS(Operating System)の資源を解放してよい。資源としては、例えば、メモリ3の共有資源、或いは、当該共有資源を利用することを示す情報(例えばフラグ)等が挙げられる。子プロセッサ2aは、OSの資源を解放後、動作モードを再度低消費電力モードに移行してよい。
【0043】
図4は、例示した上記処理によるサーバ1のシステムの消費電力の一例を示す図である。図4の例では、電力源8から供給される電力により消費電力p1で動作するシステムにおいて、電源断によりバッテリ駆動が開始される場合の一例を示す。なお、図4の例では、プロセッサ#0が親プロセッサ2aであり、プロセッサ#1~#3が子プロセッサ2aであるものとする。
【0044】
図4に例示するように、符号Aで示すタイミングで上記処理(i)が実行され、親プロセッサ#0からの通知により、符号Bで示す期間に子プロセッサ#1~#3が低消費電力モードに移行する。子プロセッサ#1~#3が低消費電力モードに移行すると、親プロセッサ#0は上記処理(ii)を開始する。
【0045】
子プロセッサ#1~#3は、それぞれ、符号C~Eで示すタイミングにおいて、上記処理(ii)の実行によって、OSの資源を解放し、再度低消費電力モードに移行する。
【0046】
以上のように、一実施形態に係るサーバ1によれば、上記処理(i)により、1以上の子プロセッサ2aを第2電力モードに移行させるため、上述した第1の手法とは異なり、バッテリ駆動に切り替わる前にシステムの消費電力を供給電力p2以下に低減できる。
【0047】
また、上記処理(ii)により、1以上の子プロセッサ2aの各々を所定順に(例えば1つずつ交替で)、第1電力モードに移行させ、子プロセッサ2a上のプロセスが実行する資源を解放させて、第2電力モードに移行させる。このため、上述した第2の手法のように、資源の解放ができずに停止処理が完了しない状況に陥ることを回避できる。
【0048】
従って、一実施形態に係る手法によれば、消費電力を短時間で低下させることができる。これにより、例えば、バッテリの供給電力内で停止処理を適切に実施することができ、データ保護を実現することができる。
【0049】
なお、停止処理を実行する場合、サーバ1は、以下の(iii)及び(iv)の処理を行なってもよい。
【0050】
(iii)親プロセッサ2aは、上記処理(ii)の後に、1以上の子プロセッサ2aの各々で実行されるプロセスの終了指示を送信し、各子プロセッサ2aを所定順に、第1電力モードに移行させ、終了指示に応じて自身の子プロセッサ2aが実行するプロセスを終了させる第3制御を実行する。
【0051】
これにより、親プロセッサ2aは、停止処理において、各子プロセッサ2aで実行されるプロセスを確実に終了させることができる。
【0052】
(iv)親プロセッサ2aは、上記処理(iii)の後に、メモリ3に記憶されたデータを記憶装置4に書き込み、サーバ1のシステムを停止する第4制御を実行する。
【0053】
例えば、親プロセッサ#0は、図4の符号Fで示すタイミングで上記処理(iv)を実行してよい。
【0054】
このように、図4にそれぞれ2点鎖線、点線、破線、一点鎖線で示すプロセッサ#0~#3は、低消費電力モードから、符号C~Fにおいて、1つずつ、元の動作モード、例えばプログラム(プロセス、スレッド)を実行可能な動作モードに遷移する。
【0055】
これにより、図4に例示するように、実線で示すシステム全体の消費電力を、バッテリの最大供給電力p2よりも小さい、プロセッサ2aの1つ分の消費電力p3程度にまで低下させ、消費電力p3により停止処理を実行させることができる。
【0056】
〔1-3〕機能構成例
次に、上述した処理を行なうサーバ1の機能構成例を説明する。図5は、一実施形態に係るサーバ1の機能構成例を示すブロック図であり、図6は、消費電力の低下制御の動作例を説明するための図である。なお、図6において、網掛けの区間はプロセッサ2aの動作モードが低消費電力モードである期間を示し、斜線の区間は後述するプロセス終了部23による動作期間であることを示す。
【0057】
図5に示すように、サーバ1は、電源断が発生する場合の消費電力の低下制御に関連する機能に着目すると、例示的に、処理部20及びメモリ部30を備えてよい。
【0058】
処理部20は、制御部の一例であり、複数のプロセッサ2aがプログラムをメモリ3に展開して実行することにより実現されてよい。例えば、処理部20は、複数のプロセッサ2aが実行するOS(Operating System)の少なくとも一部の機能であってよい。このため、処理部20の機能の少なくとも一部は、1以上のプロセッサ2aにより実行されるプロセス、又は、複数のプロセッサ2aの各々で実行されるスレッドにより実現されてよい。
【0059】
メモリ部30は、メモリ3及び記憶装置4の少なくとも一方が有する記憶領域であってよい。一実施形態では、メモリ部30は、メモリ3が有する記憶領域であるものとする。
【0060】
一実施形態において、メモリ部30は、ホワイトリスト31を記憶してよい。また、メモリ部30は、プロセス実行キュー32として利用される記憶領域を備えてよい。プロセス実行キュー32は、例えば、OSが実行するプロセスが登録されるキューであり、カーネルのスケジューラにより管理される、次に実行するプロセスの候補のリストである。プロセス実行キュー32は「ランキュー」と称されてもよい。
【0061】
ホワイトリスト31は、上記処理(iii)において、親プロセッサ2aがメモリ3に記憶されたデータを記憶装置4に書き戻す書戻処理に利用されるプロセスに関する情報である。
【0062】
上記処理(ii)において、親プロセッサ2aは、各子プロセッサ2aにより実行されるプロセスを終了させる。このとき、書戻処理に利用されるプロセスが終了(停止)されてしまうと、書戻処理の実行が阻害される可能性がある。
【0063】
そこで、一実施形態では、書戻処理に利用されるプロセスについて、予めホワイトリスト31に登録しておくことで、上記処理(ii)によるプロセスの終了処理の実行対象外とする。ホワイトリスト31に登録されるプロセスとしては、例えば、上述した書戻処理に利用されるプロセスに加えて、サーバ1のシステム全体を管理するデーモン、及び、書戻処理に利用されるプロセスを監視するデーモン、等が挙げられる。
【0064】
図5に示すように、処理部20は、例示的に、生成部21、割込通信部22、プロセス終了部23、終了制御部24、及び、書戻処理部25を備えてよい。
【0065】
生成部21は、ホワイトリスト31、及び、プロセス終了部23を生成する。例えば、生成部21は、サーバ1の消費電力低下制御の準備フェーズを実行する機能部であり、一例として、サーバ1の起動処理時又は起動処理後の初期設定処理として動作してよい。
【0066】
ホワイトリスト31は、例えば、システム管理者により予め作成されてもよく、この場合、生成部21は、記憶装置4からメモリ3(メモリ部30)にホワイトリスト31を読み出してもよい。
【0067】
プロセス終了部23は、上記処理(ii)で子プロセッサ2aにおいてプロセスを終了(停止)する処理を実行する機能部であり、例えば、複数のスレッド、一例として、プロセッサ2aごとのカーネルスレッドであってよい。
【0068】
生成部21は、生成したプロセス終了部23を、OSにおける他のプロセスの実行優先度よりも高い実行優先度に設定するとともに、プロセス実行キュー32から除外して、スリープ状態に設定する。
【0069】
例えば、生成部21は、生成したプロセス終了部23の実行優先度を他のプロセスの実行優先度よりも高い値(例えば最高値)に設定してよい。プロセス終了部23の実行優先度は、例えば、OSにおけるプロセスの優先度、一例としてnice値、として設定されてよい。nice値は、値が小さいほど優先度が高く、値が大きいほど優先度が低い。このため、生成部21は、プロセス終了部23のnice値を他のプロセスのnice値よりも小さい値(例えば最低値)に設定してよい。
【0070】
このように、子プロセッサ2aごとに生成されるプロセス終了部23(カーネルスレッド)は、自身の子プロセッサ2aで実行されるプロセスよりも実行優先度が高く設定された、当該プロセスを終了させるためのスレッドであるといえる。
【0071】
割込通信部22は、電源断の検出、及び、プロセッサ2a間の通信に関する割込通信処理を行なう。
【0072】
ここで、一実施形態に係るプロセッサ2aによる電源断の検出手法として、例えば、NMI(Non-Maskable Interrupt)等の割り込み通知が用いられてよい。NMIは、マスク不可能な割り込みの一例であり、OS(Operating System)の都合によらずプロセッサ2aに通知できる(例えばOSにおいて割り込み処理を禁止できない)割り込みである。
【0073】
以下の説明では、割込通信部22は、NMIの受信に応じて起動し、受信したNMIを処理するNMIハンドラの機能の少なくとも一部を含むものとする。
【0074】
例えば、サーバ1において、電力供給部5が電力源8からの電源断を検出した場合、例えば、電力供給部5からサーバ1のコントローラ等のHWに電源断の通知が送信される。通知を受信した当該HW、或いは、FW(Firmware)の管理デーモンは、OSに対して割り込み通知(NMI)を送信する。
【0075】
割込通信部22は、OSに対して送信されたNMIを受信することで、サーバ1における電源断を検出してよい(図6の符号(a)参照)。以下、NMIを受信し、HMIハンドラを起動したプロセッサ2aを親プロセッサ2aとし、親プロセッサ2a以外の他のプロセッサ2aを1以上の子プロセッサ2aとする。
【0076】
また、割込通信部22は、親プロセッサ2aから1以上の子プロセッサ2aに対して、低消費電力モードへの遷移を指示する割り込み通知(NMI)を送信、例えばブロードキャストしてよい(図6の符号(b)参照)。低消費電力モードは、第2電力モードの一例である。
【0077】
さらに、割込通信部22は、親プロセッサ2aからNMIを受信した子プロセッサ2aの各々の動作モードを、受信したNMIに応じて、低消費電力モードに遷移させてよい(図6の符号(c)参照)。
【0078】
低消費電力モードとしては、例えば、C-Stateとして定義されるいずれかのステートであってよく、一例として、C6ステートが挙げられる。C6ステートは、プロセッサ2aの全てのコアが停止する状態であり、レジスタ等のプロセッサ2aの内部状態が外部、例えばメモリ3の記憶領域に保存される状態を示す。
【0079】
ここで、親プロセッサ2aが1以上の子プロセッサ2aを低消費電力モードに遷移させる理由としては、以下の理由が挙げられる。
【0080】
例えば、割込通信部22は、親プロセッサ2aから1以上の子プロセッサ2aに対して、プロセスを終了(停止)させる指示を割り込み通知(NMI)することも考えられる。この場合、プロセスの終了処理は、NMIの受信に応じて各子プロセッサ2aで起動するNMIハンドラが実行することになる。
【0081】
しかし、子プロセッサ2aが実行するNMIハンドラの動作によりOSがプロセスの終了処理を実行すると、デッドロック等が発生する可能性がある。これは、NMIの受信タイミングが、OSにより資源がロック保持中である場合等の、OSが意図しないタイミングとなる場合があるためである。この場合、OSは、プロセスの終了処理のために、当該ロックを保持しようとする等の動作を行なう場合があり、プロセスの終了処理を正常に行なえない可能性がある。
【0082】
そこで、一実施形態では、割込通信部22としてのNMIハンドラとは別に、プロセスの終了処理を行なうプロセス終了部23、例えばカーネルスレッドを、プロセッサ2aごとに用意することで、OSが意図したタイミングで終了処理を開始できるようにする。
【0083】
このため、割込通信部22は、プロセス終了部23により各子プロセッサ2aにおける終了処理を実行させるために、1以上の子プロセッサ2aの全てを一時的に低消費電力モードに移行させておくのである。
【0084】
割込通信部22は、例えば、全ての子プロセッサ2aが低消費電力モードに移行した場合、親プロセッサ2aから子プロセッサ2aのそれぞれに対して、復帰通知を順に送信する。復帰通知により、各子プロセッサ2aは、低消費電力モードから元の動作モード、例えばC0ステートに順次移行する(図6の符号(d)参照)。復帰通知により移行するものとの動作モードは、第1電力モードの一例である。
【0085】
なお、子プロセッサ2aの復帰順は、プロセッサ2aの識別情報(例えば番号)の昇順又は降順であってもよいし、終了処理におけるプロセスの終了順序に従った順序であってもよい。子プロセッサ2aの復帰順は、例えば、カーネルのスケジューラにより決定されてもよい。
【0086】
割込通信部22は、各子プロセッサ2aで動作するNMIハンドラにより、各子プロセッサ2aに対応する、プロセス終了部23としてのカーネルスレッドをスリープ状態から起床させて、実行可能な状態に遷移させる。例えば、割込通信部22は、カーネルスレッドをプロセス実行キュー32に追加してよい。そして、割込通信部22は、プロセス終了部23が実行可能になった子プロセッサ2aにおいてNMIハンドラを終了させる(図6の符号(e)参照)。
【0087】
各子プロセッサ2aは、NMIハンドラによる割込処理から元のプロセスの実行に復帰すると、ロック等の資源を解放する。
【0088】
プロセス終了部23は、各子プロセッサ2aにおいて、NMIハンドラから制御を受け取ると(図6の符号(e)参照)、子プロセッサ2aを低消費電力モードに移行させる(図6の符号(f)参照)。
【0089】
上述のように、プロセス終了部23は、プロセスの実行優先度が高レベル(例えば最高レベル)に設定されている。これにより、各子プロセッサ2aは、NMIハンドラ終了後、プロセス終了部23を確実に実行する(プロセス終了部23に制御を渡す)ことができる。
【0090】
終了制御部24は、例えば、全ての子プロセッサ2aが低消費電力モードに移行した場合、親プロセッサ2aから子プロセッサ2aのそれぞれに対して、プロセス終了指示(終了指示)を順に送信する(図6の符号(g)参照)。プロセス終了指示としては、例えば、SIGKILLコマンド(シグナル)が挙げられる。
【0091】
例えば、終了制御部24は、ホワイトリスト31を参照し、ホワイトリスト31に登録されていないプロセスの各々に対してプロセス終了指示を送信してよい。換言すれば、終了制御部24は、ホワイトリスト31を参照することで、プロセス終了指示の対象プロセスから、停止処理(例えば上記処理(iv))を実行するプロセスを除外する。これにより、停止処理を実行するプロセスを残すとともに、それ以外のプロセスを確実に終了させることができる。
【0092】
また、終了制御部24は、プロセス終了指示の送信後、親プロセッサ2aから子プロセッサ2aのそれぞれのプロセス終了部23に対して、低消費電力モードから元の動作モードへの復帰通知を順に送信する(図6の符号(h)参照)。なお、各子プロセッサ2aではNMIハンドラを終了させているため、終了制御部24が送信する復帰通知は、NMI以外の手法であってよい。
【0093】
プロセス終了部23は、終了制御部24からの復帰通知の受信に応じて低消費電力モードから元の動作モードに復帰すると、自身をプロセス実行キュー32から除外(削除)し、制御をスケジューラに渡す(図6の符号(i)参照)。
【0094】
子プロセッサ2aでは、プロセス実行キュー32に登録されているプロセス終了部23以外のプロセスが順次実行(ディスパッチ;Dispatch)される。
【0095】
ここで、上述のように、終了制御部24によりプロセス終了指示が発行されている。従って、子プロセッサ2aでは、ディスパッチされるプロセスが、プロセス終了指示を受信することで自身のプロセスを終了させる。
【0096】
このように、各子プロセッサ2aで実行されるプロセス終了部23と、親プロセッサ2aで実行される終了制御部24とが協働して、各子プロセッサ2aで実行されるプロセスを安全に終了(停止)させることができる。
【0097】
また、プロセス実行キュー32に登録されているプロセスが、カーネルのスケジューラにより従い実行される際に、事前に親プロセッサ2aから送信されたプロセス終了指示の受信に応じて、自身の終了処理を行なう。これにより、子プロセッサ2aは、低消費電力モードから復帰した順に、自身のプロセッサ2a上で実行されるプロセスを終了させることができる。
【0098】
なお、自身のプロセッサ2a上で実行される全てのプロセスを終了させた子プロセッサ2aは、自身をC6ステートに遷移させてもよい。
【0099】
書戻処理部25は、ホワイトリスト31に登録されていない全てのプロセスが終了した場合、メモリ3が記憶するデータを記憶装置4に書き戻す書戻処理を実行し、サーバ1のシステムを停止、例えばシャットダウンさせる。
【0100】
〔1-4〕動作例
次に、図7及び図8を参照して、上述の如く構成された一実施形態に係るサーバ1の動作例を説明する。図7は、サーバ1の生成部21による処理の動作例を説明するフローチャートであり、図8は、サーバ1による消費電力低下制御の動作例を説明するフローチャートである。
【0101】
〔1-4-1〕生成部による処理
図7に例示するように、生成部21は、終了制御部24から送信されるプロセス終了指示、例えばSIGKILLコマンドの対象外となるプロセスを登録したホワイトリスト31を作成し(ステップS1)、メモリ部30に格納する。
【0102】
また、生成部21は、各プロセッサ2aにプロセス終了部23、例えばカーネルスレッドを作成する(ステップS2)。生成部21は、作成したプロセス終了部23のプロセス優先度を最高レベルに設定し、当該プロセス終了部23をスリープさせ(ステップS3)、処理が終了する。
【0103】
〔1-4-2〕消費電力低下制御
図8に示すように、サーバ1において、電源断を通知するNMIが発生すると(ステップS11)、NMIを受信したプロセッサ2aが、NMIの受信に応じて割込通信部22としてのNMIハンドラを起動する。当該プロセッサ2aは、親プロセッサ2aとして、起動したNMIハンドラにより、受信したNMIを認識することで電源断を検出する。
【0104】
割込通信部22は、親プロセッサ2aから全ての子プロセッサ2aにNMIをブロードキャストする(ステップS12)。当該NMIは、低消費電力モードへの遷移指示の一例である。
【0105】
ステップS13以降の処理は、プロセッサ2aが親プロセッサ2aである場合(ステップS13でYES、ステップS21~S27)と、プロセッサ2aが子プロセッサ2aである場合(ステップS13でNO、ステップS31~S39)とに分岐する。以下、サーバ1における処理の流れに沿って説明する。
【0106】
各子プロセッサ2aは、ステップS12でブロードキャストされたNMIの受信に応じて割込通信部22としてのNMIハンドラを起動し、起動したNMIハンドラにより、受信したNMIを認識することで、低消費電力モードへの遷移指示を検出する。割込通信部22は、各子プロセッサ2aをC6ステートに移行させ(ステップS31)、C6ステートで待機する(ステップS32)。
【0107】
親プロセッサ2aで動作する割込通信部22は、全ての子プロセッサ2aの動作モードがC6ステートに遷移するまで待ち合わせる(ステップS21、ステップS21でNO)。C6ステートに遷移すると(ステップS21でYES)、割込通信部22は、各子プロセッサ2aに対して順にC6ステートからの復帰通知を送信する(ステップS22)。
【0108】
子プロセッサ2aは、親プロセッサ2aから復帰通知を受信した順に、NMIハンドラにより、C6ステートから復帰する(ステップS33)。割込通信部22は、プロセス終了部23を起床させ、NMIハンドラを終了させる(ステップS34)。子プロセッサ2aは、NMIハンドラの終了に伴い、ロック等の資源を解放する(ステップS35)。
【0109】
起動したプロセス終了部23は、子プロセッサ2aの電力モードをC6ステートに遷移させて待機する(ステップS36)。
【0110】
親プロセッサ2aで動作する終了制御部24は、全ての子プロセッサ2aにおけるプロセス終了部23の実行(C6ステートでの待機を含む)を待ち合わせる(ステップS23、ステップS23でNO)。
【0111】
全ての子プロセッサ2aにおいてプロセス終了部23が実行されると(ステップS23でYES)、終了制御部24は、図7のステップS1で生成されたホワイトリスト31を参照する。終了制御部24は、ホワイトリスト31に未登録のプロセスに、プロセス終了指示、例えばSIGKILLコマンドを送信し(ステップS24)、各子プロセッサ2aに対して順にC6ステートからの復帰通知を送信する(ステップS25)。
【0112】
子プロセッサ2aは、親プロセッサ2aから復帰通知を受信した順に、プロセス終了部23により、C6ステートから復帰する(ステップS37)。プロセス終了部23は、自身をプロセス実行キュー32から除外し、制御をカーネルのスケジューラに渡す(ステップS38)。
【0113】
子プロセッサ2aでは、カーネルのスケジューラにより、プロセス実行キュー32内のプロセスが実行される。実行されたプロセスは、ステップS24で送信されたプロセス終了指示を受信すると、自身のプロセスを終了する(ステップS39)。各子プロセッサ2aにおいて、プロセス終了指示の対象となるプロセスが全て終了すると、子プロセッサ2aにおける処理が終了する。なお、子プロセッサ2aにおける処理が終了する際に、当該子プロセッサ2aは、自身をC6ステートに遷移させてもよい。
【0114】
親プロセッサ2aの終了制御部24は、ホワイトリスト31に未登録のプロセスが全て終了するまで待機する(ステップS26)。
【0115】
ホワイトリスト31に未登録のプロセスが全て終了すると、書戻処理部25は、メモリ3に記憶されたデータを記憶装置4に書き戻す書戻処理を実行し(ステップS27)、処理が終了する。なお、親プロセッサ2aは、書戻処理の終了後、シャットダウンシーケンスを実行してサーバ1のシステムを停止してよい。
【0116】
〔1-5〕サーバのハードウェア構成例
図9は、コンピュータ10のHW構成を示すブロック図である。以下、サーバ1の一例であるコンピュータ10が備えるHW構成を説明する。
【0117】
図9に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a、メモリ10b、記憶部10c、IF(Interface)部10d、IO(Input / Output)部10e、及び読取部10fを備えてよい。
【0118】
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10iで相互に通信可能に接続されてよい。プロセッサ10aは、図1に示すプロセッサ群2の一例であり、複数のプロセッサ2aを備えるマルチプロセッサである。なお、プロセッサ2aは、複数のコアを備えるマルチコアプロセッサであってもよい。
【0119】
メモリ10bは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10bは、図1に示すメモリ3の一例であり、例えばDRAM等の揮発性メモリ、及び、PM(Persistent Memory)等の不揮発性メモリ、の一方又は双方が挙げられる。
【0120】
記憶部10cは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10cは、図1に示す記憶装置4の一例であり、例えばHDD等の磁気ディスク装置、SSD等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。
【0121】
また、記憶部10cは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10g(情報処理プログラム)を格納してよい。例えば、プロセッサ2aの各々は、記憶部10cに格納されたプログラム10gをメモリ10bに展開して実行することにより、図5に例示する処理部20としての機能を実現できる。プログラム10gは、例えば、OS、或いは、OSの少なくとも一部(例えばカーネル)に含まれてもよい。
【0122】
IF部10dは、ネットワークとの間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10dは、イーサネット(登録商標)、インフィニバンド(InfiniBand)、ミリネット(Myrinet)、或いは、FC(Fibre Channel)等の光通信、等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。例えば、サーバ1は、IF部10dを介して、オペレータ又はシステム管理者が利用する図示しない端末装置と相互に通信可能に接続されてよい。また、例えば、プログラム10gは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10cに格納されてもよい。
【0123】
IO部10eは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。
【0124】
読取部10fは、記録媒体10hに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10fは、記録媒体10hを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10fとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10hにはプログラム10gが格納されてもよく、読取部10fが記録媒体10hからプログラム10gを読み出して記憶部10cに格納してもよい。
【0125】
記録媒体10hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
【0126】
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。例えば、サーバ1において、IO部10e及び読取部10fの少なくとも一方は、省略されてもよい。
【0127】
また、コンピュータ10は、図1に例示する電力供給部5及び内蔵バッテリ6を備えてよく、電力供給部5にはUPS7が接続されてよい。なお、内蔵バッテリ6及びUPS7の一方は省略されてもよい。
【0128】
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【0129】
例えば、図5に示すサーバ1において、生成部21、割込通信部22、プロセス終了部23、終了制御部24及び書戻処理部25の機能は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
【0130】
また、親プロセッサ2aが実行する割込通信部22及び終了制御部24のそれぞれは、C6ステートの子プロセッサ2aに対して1つずつ順に復帰通知を送信するものとしたが、これに限定されるものではない。
【0131】
例えば、バッテリの最大供給電力と停止処理の処理時間との関係で許容されるのであれば、2以上の子プロセッサ2aに並行して復帰通知を送信し、2以上の子プロセッサ2aを並行して復帰させてもよい。或いは、バッテリの最大供給電力と停止処理の処理時間との関係で許容されるのであれば、親プロセッサ2aは、或る子プロセッサ2aが元の動作モードで動作中に、他の子プロセッサ2aを復帰させてもよい。換言すれば、親プロセッサ2aは、元の動作モードとする期間の少なくとも一部を2以上の子プロセッサ2a間で重複(オーバラップ)させてもよい。
【0132】
また、復帰通知は、子プロセッサ2aを低消費電力モードから元の動作モードに移行させる指示であるものとしたが、これに限定されるものではなく、元の動作モードよりも消費電力の小さい動作モードに移行させる指示であってもよい。
【0133】
〔3〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0134】
(付記1)
複数のプロセッサと、
電力供給源の停電に応じて、前記電力供給源からの電力を蓄積するバッテリから出力される電力を前記複数のプロセッサのそれぞれに供給する電源部と、を備え、
前記複数のプロセッサのうちの第1プロセッサは、
前記停電の検出に応じて、前記複数のプロセッサのうちの1以上の第2プロセッサの各々を、プロセスを実行可能な第1電力モード及び前記第1電力モードよりも消費電力が小さい第2電力モードのうちの前記第2電力モードに移行させる第1制御と、
前記1以上の第2プロセッサの各々が前記第2電力モードに移行した場合、前記1以上の第2プロセッサの各々を所定順に、前記第1電力モードに移行させ、自身の第2プロセッサが実行する前記プロセスにより利用される資源を解放させ、前記第2電力モードに移行させる第2制御と、
を実行する制御部、
を備える、情報処理装置。
【0135】
(付記2)
前記制御部は、
前記第2制御後に、前記1以上の第2プロセッサの各々で実行されるプロセスの終了指示を送信し、前記1以上の第2プロセッサの各々を所定順に、前記第1電力モードに移行させ、前記終了指示に応じて自身の第2プロセッサが実行する前記プロセスを終了させる第3制御を実行する、
付記1に記載の情報処理装置。
【0136】
(付記3)
揮発性記憶領域と、
不揮発性記憶領域と、を備え、
前記制御部は、
前記第3制御後に、前記揮発性記憶領域に記憶されたデータを前記不揮発性記憶領域に書き込み、前記情報処理装置を停止する第4制御を実行する、
付記2に記載の情報処理装置。
【0137】
(付記4)
前記制御部は、前記終了指示の対象プロセスから、前記第4制御を実行するプロセスを除外する、
付記3に記載の情報処理装置。
【0138】
(付記5)
前記第1プロセッサは、前記複数のプロセッサのうちの、前記電源部で検知される前記停電の発生を通知する割り込み通知を受信するプロセッサであり、
前記制御部は、前記第1制御において、前記1以上の第2プロセッサの各々に対して、前記第2電力モードへの移行を指示する割り込み通知を送信する、
付記1~付記4のいずれか1項に記載の情報処理装置。
【0139】
(付記6)
前記1以上の第2プロセッサの各々は、
前記第1制御において、前記割り込み通知の受信に応じて起動したハンドラにより前記第2電力モードに移行し、
前記第2制御において、前記第1電力モードへの移行の指示を受信すると、前記ハンドラを終了し、前記資源を解放し、自身の第2プロセッサで実行される前記プロセスよりも実行優先度が高く設定された、前記プロセスを終了させるためのスレッドを起動して、前記第2電力モードに移行する、
付記5に記載の情報処理装置。
【0140】
(付記7)
複数のプロセッサと、電力供給源の停電に応じて、前記電力供給源からの電力を蓄積するバッテリから出力される電力を前記複数のプロセッサのそれぞれに供給する電源部と、を備えるコンピュータに、
前記停電の検出に応じて、前記複数のプロセッサのうちの1以上のプロセッサの各々を、プロセスを実行可能な第1電力モード及び前記第1電力モードよりも消費電力が小さい第2電力モードのうちの前記第2電力モードに移行させる第1制御と、
前記1以上のプロセッサの各々が前記第2電力モードに移行した場合、前記1以上のプロセッサの各々を所定順に、前記第1電力モードに移行させ、自身のプロセッサが実行する前記プロセスにより利用される資源を解放させ、前記第2電力モードに移行させる第2制御と、
を含む処理を実行させる、情報処理プログラム。
【0141】
(付記8)
前記コンピュータに、
前記第2制御後に、前記1以上のプロセッサの各々で実行されるプロセスの終了指示を送信し、前記1以上のプロセッサの各々を所定順に、前記第1電力モードに移行させ、前記終了指示に応じて自身のプロセッサが実行する前記プロセスを終了させる第3制御、
を含む処理を実行させる、付記7に記載の情報処理プログラム。
【0142】
(付記9)
前記コンピュータに、
前記第3制御後に、揮発性記憶領域に記憶されたデータを不揮発性記憶領域に書き込み、前記コンピュータを停止する第4制御、
を含む処理を実行させる、付記8に記載の情報処理プログラム。
【0143】
(付記10)
前記コンピュータに、
前記終了指示の対象プロセスから、前記第4制御を実行するプロセスを除外する、
処理を実行させる、付記9に記載の情報処理プログラム。
【0144】
(付記11)
前記コンピュータに、
前記第1制御及び前記第2制御を、前記複数のプロセッサのうちの、前記電源部で検知される前記停電の発生を通知する割り込み通知を受信するプロセッサに実行させ、
前記第1制御は、前記1以上のプロセッサの各々に対して、前記第2電力モードへの移行を指示する割り込み通知を送信することを含む、
付記7~付記10のいずれか1項に記載の情報処理プログラム。
【0145】
(付記12)
前記コンピュータに、
前記1以上のプロセッサの各々において、
前記第1制御において、前記割り込み通知の受信に応じて起動したハンドラにより前記第2電力モードに移行し、
前記第2制御において、前記第1電力モードへの移行の指示を受信すると、前記ハンドラを終了し、前記資源を解放し、自身のプロセッサで実行される前記プロセスよりも実行優先度が高く設定された、前記プロセスを終了させるためのスレッドを起動して、前記第2電力モードに移行する、
処理を実行させる、
付記11に記載の情報処理プログラム。
【0146】
(付記13)
複数のプロセッサと、電力供給源の停電に応じて、前記電力供給源からの電力を蓄積するバッテリから出力される電力を前記複数のプロセッサのそれぞれに供給する電源部と、を備えるコンピュータが、
前記停電の検出に応じて、前記複数のプロセッサのうちの1以上のプロセッサの各々を、プロセスを実行可能な第1電力モード及び前記第1電力モードよりも消費電力が小さい第2電力モードのうちの前記第2電力モードに移行させる第1制御と、
前記1以上のプロセッサの各々が前記第2電力モードに移行した場合、前記1以上のプロセッサの各々を所定順に、前記第1電力モードに移行させ、自身のプロセッサが実行する前記プロセスにより利用される資源を解放させ、前記第2電力モードに移行させる第2制御と、
を含む処理を実行する、情報処理方法。
【0147】
(付記14)
前記コンピュータが、
前記第2制御後に、前記1以上のプロセッサの各々で実行されるプロセスの終了指示を送信し、前記1以上のプロセッサの各々を所定順に、前記第1電力モードに移行させ、前記終了指示に応じて自身のプロセッサが実行する前記プロセスを終了させる第3制御、
を含む処理を実行する、付記13に記載の情報処理方法。
【0148】
(付記15)
前記コンピュータが、
前記第3制御後に、揮発性記憶領域に記憶されたデータを不揮発性記憶領域に書き込み、前記コンピュータを停止する第4制御、
を含む処理を実行する、付記14に記載の情報処理方法。
【0149】
(付記16)
前記コンピュータが、
前記終了指示の対象プロセスから、前記第4制御を実行するプロセスを除外する、
処理を実行する、付記15に記載の情報処理方法。
【0150】
(付記17)
前記コンピュータが、
前記第1制御及び前記第2制御を、前記複数のプロセッサのうちの、前記電源部で検知される前記停電の発生を通知する割り込み通知を受信するプロセッサに実行させ、
前記第1制御は、前記1以上のプロセッサの各々に対して、前記第2電力モードへの移行を指示する割り込み通知を送信することを含む、
付記13~付記16のいずれか1項に記載の情報処理方法。
【0151】
(付記18)
前記コンピュータが、
前記1以上のプロセッサの各々において、
前記第1制御において、前記割り込み通知の受信に応じて起動したハンドラにより前記第2電力モードに移行し、
前記第2制御において、前記第1電力モードへの移行の指示を受信すると、前記ハンドラを終了し、前記資源を解放し、自身のプロセッサで実行される前記プロセスよりも実行優先度が高く設定された、前記プロセスを終了させるためのスレッドを起動して、前記第2電力モードに移行する、
処理を実行する、
付記17に記載の情報処理方法。
【符号の説明】
【0152】
1 サーバ
10 コンピュータ
2 プロセッサ群
2a プロセッサ
20 処理部
21 生成部
22 割込通信部
23 プロセス終了部
24 終了制御部
25 書戻処理部
3 メモリ
30 メモリ部
31 ホワイトリスト
32 プロセス実行キュー
4 記憶装置
5 電力供給部
6 内蔵バッテリ
7 無停電電源装置(UPS)
8 電力源
図1
図2
図3
図4
図5
図6
図7
図8
図9