JP6074955B2 - 情報処理装置および制御方法 - Google Patents

情報処理装置および制御方法 Download PDF

Info

Publication number
JP6074955B2
JP6074955B2 JP2012191491A JP2012191491A JP6074955B2 JP 6074955 B2 JP6074955 B2 JP 6074955B2 JP 2012191491 A JP2012191491 A JP 2012191491A JP 2012191491 A JP2012191491 A JP 2012191491A JP 6074955 B2 JP6074955 B2 JP 6074955B2
Authority
JP
Japan
Prior art keywords
circuit
individual
arithmetic
thread
circuits
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
JP2012191491A
Other languages
English (en)
Other versions
JP2014048907A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012191491A priority Critical patent/JP6074955B2/ja
Priority to US13/966,330 priority patent/US9032482B2/en
Priority to EP13181331.3A priority patent/EP2704050B1/en
Publication of JP2014048907A publication Critical patent/JP2014048907A/ja
Application granted granted Critical
Publication of JP6074955B2 publication Critical patent/JP6074955B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、情報処理装置および制御方法に関する。
CoD(Capacity on Demand)は、サーバコンピュータなどの情報処理装置において、CPU(Central Processing Unit)などのハードウェア資源をユーザが必要な分だけ使用できるようにするものである。
例えば、CoDによりCPUの使用数を制限する方法としては、ユーザは、複数のCPUが搭載された情報処理装置を購入する際、使用するCPUの数に応じた料金を支払う。これにより情報処理装置は、料金に応じた数のCPUが動作する一方、その数を超えたCPUの動作が禁止された状態で、ユーザに提供される。その後、情報処理装置の処理能力の増強が必要になった場合には、ユーザは、CPUの使用権を新たに購入することで、それまで使用していなかったCPUを直ちに使用可能になる。
CoDに関する技術の一例として、使用権が設定されたプロセッサが故障した場合に、使用権が設定されていない置き換えプロセッサを始動させて、故障プロセッサを停止させるようにしたものがある。
また、近年のマルチコアプロセッサの中には、プロセッサ内の各コアの内部に複数のハードウェアスレッドを備えるものがある。ハードウェアスレッドは「ストランド(Strand)」と呼ばれることもある。コア内のハードウェアスレッドは、それぞれ個別の処理を並列に実行可能である。また、ハードウェアスレッドごとにレジスタなどのハードウェア資源が個別に設けられることもある。
特開2004−288183号公報 特開2004−318885号公報 国際公開第2007/099606号
ところで、上記のように複数のハードウェアスレッドを備えたコアを複数含むマルチコアプロセッサが搭載された情報処理装置において、CoDによりコアごとに使用権を設定した場合には、次のような問題がある。ハードウェアスレッドごとに個別に設けられたハードウェアのいずれかに異常が発生したときに、異常が発生したハードウェアスレッドを別のハードウェアスレッドに置き換えると、その置き換えの仕方によってはライセンス超過が発生する場合がある。
1つの側面では、本発明は、異常が発生したハードウェアの置き換え時におけるライセンス超過の発生を防止した情報処理装置および制御方法を提供することを目的とする。
1つの案では、複数の処理を並列に実行可能であって、並列に実行する処理ごとに個別に設けられた個別回路を有する演算回路を、複数備えた情報処理装置が提供される。この情報処理装置は、次のような記憶部および制御部を有する。記憶部は、演算回路を単位として設定された使用権の数を記憶する。制御部は、複数の演算回路のうち、使用権の数の演算回路の動作を許可する。また、制御部は、動作中の演算回路に搭載されたいずれかの個別回路の異常を検知すると、異常が検知された個別回路が搭載された演算回路における他の個別回路の動作を停止させ、動作していないいずれかの演算回路の動作を開始させる。
また、1つの案では、上記の情報処理装置と同様の処理を実行する制御方法が提供される。
1態様によれば、情報処理装置および制御方法において、異常が発生したハードウェアの置き換え時におけるライセンス超過の発生を防止できる。
第1の実施の形態に係る情報処理装置の構成例およびその動作例を示す図である。 第2の実施の形態に係るサーバ装置の全体構成例を示す図である。 CPUチップの内部構成例を示す図である。 スレッドの故障が発生した場合の処理の参考例を示す図である。 第2の実施の形態におけるスレッド故障時の処理例を示す図である。 情報処理装置が備える機能の構成例を示すブロック図である。 コア管理テーブルに登録される情報の例を示す図である。 ドメイン管理テーブルに登録される情報の例を示す図である。 スレッドの置き換え処理の例を示すフローチャートである。 スレッドの置き換え処理の例を示すフローチャートである。 スレッド切り離し処理の例を示すフローチャートである。 スレッド組み込み処理の例を示すフローチャートである。 コア管理テーブルの遷移の例を示す図である。 ドメイン管理テーブルの遷移の例を示す図である。 第3の実施の形態に係る情報処理装置が備える機能の構成例を示すブロック図である。 メモリ装置に対するライセンス設定の第1の例を示す図である。 メモリ装置に対するライセンス設定の第2の例を示す図である。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の構成例およびその動作例を示す図である。図1に示す情報処理装置1は、記憶部2、制御部3および複数の演算回路を有している。図1の例では、情報処理装置1は2つの演算回路11,12を備えているが、演算回路の搭載数は2つ以上の任意の数とすることができる。
演算回路11,12は、例えば、プロセッサの内部に搭載されるプロセッサコア、またはプロセッサとして実現される。制御部3も、例えば、プロセッサコアまたはプロセッサとして実現される。制御部3は、例えば、複数の演算回路のうちの1つとして実現されてもよい。記憶部2は、HDD(Hard Disk Drive)、SSD(Solid State Drive)などの不揮発性記憶装置として実現される。
演算回路11,12のそれぞれは、複数の処理を並列に実行可能である。また、演算回路11,12のそれぞれは、並列に実行する処理ごとに個別に設けられた個別回路を有する。演算回路11,12がプロセッサコアまたはプロセッサである場合、個別回路は、例えば、レジスタセット、命令バッファ、演算器、またはこれらの任意の組み合わせとして実現される。
本実施の形態では例として、図1の右側に示すように、演算回路11は個別回路21,22を有し、演算回路12は個別回路23,24を有するものとする。すなわち、演算回路11は、個別回路21,22を用いて2系統の処理を並列に実行でき、演算回路12は、個別回路23,24を用いて2系統の処理を並列に実行できる。なお、「複数の処理を並列に実行する」とは、各処理を同時に実行することの他、各処理を時分割して交互に実行することや、各処理をパイプライン方式で実行することを含んでもよい。
情報処理装置1には、演算回路を単位として使用権が設定される。使用権は、例えば、情報処理装置1のユーザが所定の料金を支払うことで設定される。記憶部2は、設定された使用権の数を記憶する。
制御部3は、記憶部2に記憶された使用権の数の演算回路の動作を許可する。例えば、使用権の数が「1」である場合、制御部3は、演算回路11,12の一方の動作を許可し、他方の動作を禁止する。これにより、ユーザは、情報処理装置1に演算回路が2つ以上搭載されている場合であっても、1つの演算回路だけしか使用できない。
また、制御部3は、動作中の演算回路に搭載されたいずれかの個別回路の異常を検知したとき、異常が検知された個別回路が搭載された演算回路に含まれる他の個別回路の動作を停止させ、動作していないいずれかの演算回路の動作を開始させる。ここで、制御部3は、個別回路の異常を検知したとき、異常が検知された個別回路が搭載された演算回路における他の少なくとも1つの個別回路から異常が検知されていなくても、その演算回路内の他のすべての動作を停止する。このような処理により、動作中の演算回路の数が使用権の数より多くなるというライセンス超過の発生が防止される。
例えば、図1に「状態1」として示すように、演算回路11が動作中であり、演算回路12が動作していないものとする。また、設定された使用権の数が「1」であるものとする。なお、図1の右側では、動作中の回路を実線で示し、動作していない回路を点線で示している。
ここで、制御部3が個別回路21での異常発生を検知したものとする。このとき制御部3は、個別回路22の異常を検知していなくても、個別回路22の動作を停止させる。これにより、演算回路11自体の動作が停止する。そして、制御部3は、動作していなかった演算回路12の動作を開始させる。このように動作する演算回路が置き換えられた状態を、図1に「状態2」として示す。この状態において制御部3は、例えば、個別回路21を用いて実行されていた処理を、個別回路23を用いて引き続き実行させ、個別回路22を用いて実行されていた処理を、個別回路24を用いて引き続き実行させる。
仮に、個別回路21の異常を検知したとき、個別回路21の動作が停止されて、演算回路12内の個別回路23,24のいずれかの動作が開始された場合には、演算回路12もユーザに使用されることになる。この場合、使用される演算回路の数が「2」になって、ライセンス超過が発生してしまう。
これに対して、本実施の形態の制御部3の処理によれば、個別回路の異常検知時に必ず演算回路を単位としてハードウェアの置き換えが行われることから、ライセンス超過の発生が防止される。図1の右側の動作例では、ハードウェアの置き換え前を示す状態1と、置き換え後を示す状態2では、いずれも動作中の演算回路の数は「1」であり、設定された使用権の数の範囲に収まっている。
〔第2の実施の形態〕
次に、情報処理装置の例として、マルチコア・マルチスレッド方式のプロセッサが搭載されたサーバ装置を挙げて説明する。
図2は、第2の実施の形態に係るサーバ装置の全体構成例を示す図である。図2に示すサーバ装置100は、ビルディングブロック110a〜110dおよびサービスプロセッサ120を備える。ビルディングブロック110a〜110dおよびサービスプロセッサ120は、例えば、ラック内のスロットにそれぞれ挿入され、ラックのバックボードに設けられたバス101を通じて互いに接続されて、データを送受信できるようになっている。
ビルディングブロック110aは、CPUチップ111a,111b、メモリ112a,112b、ディスクユニット113および通信インタフェース114を備える。ビルディングブロック110a内のこれらのハードウェア要素は、例えば、図示しないクロスバーを介して互いに接続される。また、ディスクユニット113には、HDD115a,115bが搭載されている。
CPUチップ111a,111bはそれぞれ、後述するように複数のCPUコアを備えた、マルチコア方式のプロセッサである。CPUチップ111aは、ディスクユニット113内のHDD115a,115bなどの不揮発性記憶装置からプログラムを読み出してメモリ112a,112bの少なくとも一方にロードし、ロードしたプログラムを実行する。CPUチップ111bも同様に、ディスクユニット113内のHDD115a,115bなどの不揮発性記憶装置からプログラムを読み出してメモリ112a,112bの少なくとも一方にロードし、ロードしたプログラムを実行する。
メモリ112a,112bは、ともに揮発性の記憶装置である。メモリ112aには、CPUチップ111a,111bの少なくとも一方に実行させるプログラムの少なくとも一部や、プログラムの実行に必要な各種データが一時的に格納される。メモリ112bにも同様に、CPUチップ111a,111bの少なくとも一方に実行させるプログラムの少なくとも一部や、プログラムの実行に必要な各種データが一時的に格納される。
ディスクユニット113内のHDD115a,115bには、プログラムや各種データが格納される。なお、ディスクユニット113には、SSDなどの他の種類の不揮発性記憶装置が搭載されてもよい。
通信インタフェース114は、バス101に接続し、バス101とCPUチップ111a,111bとの間でデータを送受信する。
なお、ビルディングブロック110aに搭載されるCPUチップの数やRAMの数、およびディスクユニット113に搭載される不揮発性記憶装置の数は、それぞれ任意の数とすることができる。
ビルディングブロック110b〜110dのそれぞれは、ビルディングブロック110aと同様のハードウェア構成を有しており、ここでは説明を省略する。
以上のように、サーバ装置100は、それぞれに1つ以上のプロセッサ(ここではCPUチップを指す)が搭載されたビルディングブロックを複数備える。このような構成により、サーバ装置100全体としてマルチプロセッサシステムが実現される。
サービスプロセッサ120は、ビルディングブロック110a〜110dの動作状態を監視する。サービスプロセッサ120は、CPU121、メモリ122、HDD123および通信インタフェース124を備える。
CPU121は、HDD123に格納されたファームウェアプログラムをメモリ122にロードし、ロードしたファームウェアプログラムを実行する。これによりCPU121は、ビルディングブロック110a〜110dの監視を含む所定の処理を実行する。
メモリ122は、ファームウェアプログラムの少なくとも一部や各種データを一時的に記憶する揮発性記憶装置である。HDD123は、不揮発性記憶装置の一例であり、例えば、SSDなどの他の種類と置換されてもよい。通信インタフェース124は、バス101に接続し、バス101とCPU121との間でデータを送受信する。
なお、図2のサーバ装置100には例として4台のビルディングブロックが搭載されているが、ビルディングブロックの搭載数は任意の数とすることができる。また、図2のサーバ装置100には例として1台のサービスプロセッサが搭載されているが、複数台のサービスプロセッサが搭載されていてもよい。例えば、動作の信頼性向上のためにサービスプロセッサが冗長化されていてもよい。
図3は、CPUチップの内部構成例を示す図である。この図3に示すCPUチップ111は、ビルディングブロック110a〜110dのそれぞれに搭載されたCPUチップ(例えば、図2のCPUチップ111aまたはCPUチップ111b)に対応する。すなわち、ビルディングブロック110a〜110dはそれぞれ、図3と同様の構成のCPUチップを備えている。
CPUチップ111は、コア201a〜201dおよび二次キャッシュ202を備えている。コア201a〜201dは、それぞれ第1の実施の形態における演算回路に対応する。コア201a〜201dは、それぞれ個別の演算器を少なくとも備えており、それらの演算器によってそれぞれ個別の処理を並列に実行可能である。なお、CPUチップ111に搭載されるコアの数は、任意の数とすることができる。二次キャッシュ202は、コア201a〜201dに共用されるキャッシュメモリである。
コア201aは、スレッド210a,210bおよび一次キャッシュ220を備えている。なお、コア201a〜201dはそれぞれ同様の構成であるので、ここでは代表してコア201aについてのみ説明する。
一次キャッシュ220は、スレッド210a,210bに共用されるキャッシュメモリである。一次キャッシュ220は、命令をキャッシュする命令キャッシュ221と、データをキャッシュするデータキャッシュ222とを備える。
スレッド210a,210bは、それぞれ「ストランド」とも呼ばれるハードウェアスレッドである。スレッド210a,210bは、それぞれ個別の処理を並列に実行可能である。ここで言う個別の処理とは、例えば、OS(Operating System)上でプログラムが実行される際に、そのOS自身が認識しているCPUごとに実行される単位処理(例えば、ソフトウェアの意味でのスレッド)である。
スレッド210a,210bに対応するハードウェアの少なくとも一部は、スレッド210aのためのものとスレッド210bのためのものとで個別に搭載されている。そして、スレッド210a,210bは、それぞれ個別の処理を実行する際に、自分自身に対応する個別のハードウェアを利用する。
図3の例では、スレッド210aは、自分専用のハードウェアとして命令バッファ212aおよびレジスタ部214aを備える。スレッド210bも同様に、自分専用のハードウェアとして命令バッファ212bおよびレジスタ部214bを備える。一方、命令制御部211および演算部213は、スレッド210aとスレッド210bとで共通化されている。
なお、命令バッファ212aおよびレジスタ部214aは、第1の実施の形態における個別回路の1つに対応し、命令バッファ212bおよびレジスタ部214bは、第1の実施の形態における個別回路の他の1つに対応する。
命令制御部211は、メモリから命令を読み込む。ここで言うメモリとは、命令キャッシュ221、二次キャッシュ202、CPUチップ111内の主記憶装置(図2のメモリ112a,112bに対応)のいずれかである。また、命令制御部211は、メモリから読み込んだ命令を命令バッファ212a,212bのいずれかに一時的に格納した後、格納した命令を読み込む場合もある。スレッド210aに対応する処理では命令バッファ212aが使用され、スレッド210bに対応する処理では命令バッファ212bが使用される。
命令制御部211は、読み込んだ命令をデコードし、デコード結果に応じた演算処理を演算部213に実行させる。演算部213が実行する演算処理としては、例えば、加算、減算、乗算、除算、アドレス計算などがある。演算部213は、演算に使用するデータの読み出しや、演算結果を書き込むために、レジスタ部214a,214bのいずれかのレジスタを利用する。また、ロード命令やストア命令が発行された場合、メモリとレジスタ部214aまたはレジスタ部214bとの間でデータが転送される。ここで言うメモリとは、データキャッシュ222、二次キャッシュ202、CPUチップ111内の主記憶装置(図2のメモリ112a,112bに対応)のいずれかである。このような演算部213による処理においては、スレッド210aに対応する処理ではレジスタ部214aが使用され、スレッド210bに対応する処理ではレジスタ部214bが使用される。
このような構成のコア201aによれば、例えば、一方のスレッドに対応する演算部213での演算処理と、他方のスレッドに対応する、メモリと命令バッファまたはレジスタ部とのデータ転送処理とを、並列に実行することができる。これにより、処理性能が向上する。
また、命令制御部および演算部も、スレッドごとに個別に設けられてもよい。この場合、コア201aは、各スレッドに対応する演算処理を同時に実行することができる。
ところで、本実施の形態のサーバ装置100は、CoD技術に対応している。サーバ装置100のユーザは、コアを単位としてライセンス(使用権)を購入する。サーバ装置100は、ライセンスが購入された台数分のコアを動作許可状態にし、その台数に含まれない残りのコアを動作禁止状態にする。また、ユーザがライセンスを追加購入した場合には、動作禁止状態のコアのうち、追加購入された台数分のコアが動作許可状態に変更される。これにより、ユーザは、サーバ装置100を導入する際の初期投資を抑制し、さらにその後に、必要に応じてサーバ装置100の能力を即座に増強することができる。
ここで、ライセンスの単位が、コア内のスレッドではなくコアとされているのは、次のような理由による。図3に示したように、コア内の各スレッドは、コア内のハードウェアの一部を共用する。例えば図3の場合、一次キャッシュ220、命令制御部211および演算部213が、スレッド210a,210bによって共用される。このため、コア内の一方のスレッドのみが動作した場合と、コア内の両方のスレッドが動作した場合とでは、後者の方がスレッド当たりの処理速度が低下する場合がある。
このことから、スレッドごとに一定のライセンス料金を設定してしまうと、スレッドの動作状況に応じて、ライセンス料金と処理速度とのバランスが変動してしまうことになり、料金の設定の仕方が適切とは言えなくなる。これに対して、CPUチップ内の複数のコアに関しては、各コアの動作状況によるコア当たりの処理速度の変動は発生しにくい。このため、ライセンス料金と処理速度とのバランスをできるだけ保つためには、ライセンスの最小単位をスレッドではなくコアとする方が好ましい。
次に、スレッド内のハードウェアで故障が発生した場合の処理について説明する。以下の説明では、スレッドごとに個別に設けられたハードウェアで故障が発生した場合を想定する。
また、以下の説明において、「スレッドの故障」とは、スレッドのハードウェアのうち、スレッドごとに個別に設けられたハードウェアで故障が発生したことを指すものとする。例えば図3において、「スレッド210aの故障」とは、スレッド210a内の命令バッファ212aまたはレジスタ部214aの少なくとも一方で故障が発生したことを指す。スレッドの故障の具体例としては、いずれかのスレッドにおいてレジスタのパリティエラーが発生するケースなどがある。
さらに、以下の説明では、識別番号「x」を「#x」と表記する。例えば、識別番号が「0」のスレッドを「スレッド#0」と表記する。
図4は、スレッドの故障が発生した場合の処理の参考例を示す図である。なお、この図4、および次の図5では、動作許可状態のハードウェアを実線で示し、動作禁止状態のハードウェアを点線で示す。
図4では例として、コア3台分のライセンスが設定されているものとする。そして、このようなライセンスの設定状況に従い、図4の上段に示すように、CPUチップ111a内の4つのコアのうち、コア#0,#1,#2が動作中であり、コア#3が動作していないものとする。
ここで例として、サーバ装置100は、コア#1のスレッド#2から故障を検知したものとする。この場合、サーバ装置100は、故障が検知されたスレッド#2を、動作していない他のスレッドに置き換えて、スレッド#2で実行されていた処理を置き換え後のスレッドに引き継がせる。
スレッドの置き換え方法としては、故障が検知されたスレッド#2を、他のコア内の動作していないスレッドに置き換える方法が考えられる。図4の下段は、故障が検知されたスレッド#2を、コア#3内の動作していないスレッド#6に置き換えた例を示している。しかしながら、この方法では、スレッド#3を用いた処理はそのまま続行されるので、コア#1が使用された状態のままコア#3が新たに使用されることになる。これにより、使用されるコアの数が「3」から「4」に増加してしまい、ライセンス超過の状態になってしまう。
これに対して、本実施の形態では、次の図5に示すようなハードウェアの置き換え処理が行われることで、ライセンス超過の発生が防止される。図5は、第2の実施の形態におけるスレッド故障時の処理例を示す図である。
図5の上段は、図4の上段と同様の状態を示しており、この状態からコア#1のスレッド#2から故障が検知されたものとする。このとき、サーバ装置100は、コア#1内の他のスレッド#3から故障が検知されていなくても、コア#1を動作禁止状態にする。これとともに、サーバ装置100は、動作していない他のいずれかのコアの動作を開始させる。図5の例では、動作していなかったコア#3の動作が開始され、図5の下段はこのときの状態を示す。この場合、サーバ装置100は、スレッド#2で実行されていた処理を、例えばスレッド#6に引き継がせ、スレッド#3で実行されていた処理を、例えばスレッド#7に引き継がせる。
このような置き換え処理によれば、置き換え処理の前後で、動作中のコアの数は「3」のまま変化せず、ライセンス超過は発生しない。
次に、サーバ装置100の処理の詳細について説明する。
まず、図6は、情報処理装置が備える機能の構成例を示すブロック図である。サーバ装置100は、ハイパーバイザ130およびドメイン管理部140を備える。また、サーバ装置100の記憶装置には、コア管理テーブル151およびドメイン管理テーブル152が記憶される。
ここで、ハイパーバイザ130の処理は、サーバ装置100が備えるプロセッサがハイパーバイザプログラムを実行することで実現される。また、ドメイン管理部140の処理は、サーバ装置100が備えるプロセッサがドメイン管理プログラムを実行することで実現される。ハイパーバイザプログラムおよびドメイン管理プログラムは、例えば、いずれかのビルディングブロックに搭載された少なくとも1つのCPUチップによって実行される。
サーバ装置100は、1つ以上の仮想マシンを構築する。図6に示す論理ドメイン#0〜#3は、それぞれが仮想マシンに対応し、論理ドメイン#0〜#3のそれぞれには、仮想的なハードウェア資源としてCPU、メモリ、ディスク(不揮発性記憶装置)などが割り当てられる。ここで、各論理ドメインに割り当てられる仮想CPUは、コア内のスレッドに対応する。また、各論理ドメインには、複数の仮想CPUが割り当てられてもよい。
そして、各論理ドメインにおいては、割り当てられた1つ以上の仮想CPU、すなわち1つ以上のスレッドが、ゲストOSプログラムを実行する。これにより、各論理ドメインにおいてそれぞれ個別のゲストOSが動作する。図6の例では、論理ドメイン#0,#1,#2,#3において、それぞれゲストOS#0,#1,#2,#3が動作する。
ハイパーバイザ130は、ゲストOS#0〜#3に対して、実ハードウェアへのインタフェースを提供する。これによりゲストOS#0〜#3は、ハイパーバイザ130上で動作する。
また、ハイパーバイザ130は、ハードウェアの異常を検知する異常検知部131を備える。異常検知部131は、少なくとも、コア内のスレッドごとに個別のハードウェア(本実施の形態では命令バッファおよびレジスタ部)の異常発生を検知することができる。
ドメイン管理部140は、コア管理テーブル151およびドメイン管理テーブル152を利用して、各論理ドメインに対する実ハードウェアの割り当てを管理する。コア管理テーブル151には、コアのライセンスに関する情報が登録される。また、ドメイン管理テーブル152には、論理ドメインごとのスレッドの割り当て状況に関する情報が登録される。
また、ドメイン管理部140は、ゲストOSの動作を停止させずに、ゲストOSに対応する論理ドメインからのハードウェア資源の切り離しや、論理ドメインへのハードウェア資源の組み込みを行うための「動的再構成(Dynamic Reconfiguration)」の制御を行う。ドメイン管理部140は、スレッドの異常が検知された場合に、異常が検知されたスレッドが割り当てられているゲストOSに対して、スレッドの切り離しおよび新たなスレッドの組み込みを指示する。
図7は、コア管理テーブルに登録される情報の例を示す図である。コア管理テーブル151には、ライセンスありのコア数、ライセンスなしのコア数、および異常コア数が登録される。
ライセンスありのコア数は、ユーザによって購入されたコアのライセンス数を示す。コア管理テーブル151において、ライセンスありのコア数の欄は、さらに、ドメイン割り当て済みコア数と、ドメイン未割り当てのコア数とに分けられている。ドメイン割り当て済みのコア数は、論理ドメインに割り当てられているコアの数を示し、ドメイン未割り当てのコア数は、論理ドメインに割り当てられていないコアの数を示す。ドメイン割り当て済みのコア数およびドメイン未割り当てのコア数の各欄に登録された数の合計値が、ユーザによって購入されたライセンスの総数を示す。
異常コア数は、サーバ装置100に搭載されたコアのうち、異常が検知されて他のコアに置き換えられたコアの数を示す。ライセンスなしのコア数は、サーバ装置100に搭載されたコアの総数から、購入されたライセンスの数と、異常コア数とを減算した数を示す。従って、コア管理テーブル151のすべての欄に登録されたコア数を合計した値は、サーバ装置100に搭載された、ライセンス設定対象のコアの総数を示す。
サーバ装置100が出荷される段階では、例えば、ドメイン未割り当てのコア数の欄に、ユーザによって購入されたライセンスの数が登録される。これとともに、ライセンスなしのコア数の欄に、ライセンス設定対象のコアの総数から、購入されたライセンス数を減算した値が登録される。このとき、ドメイン割り当て済みのコア数および異常コア数の各欄には、「0」が登録される。
ドメイン管理部140は、例えばサーバ装置100に接続された管理端末(図示せず)からの入力に応じて、論理ドメインの設定を行う。ドメイン管理部140は、論理ドメインにスレッドを割り当てる際、そのスレッドを含むコア内の他のいずれのスレッドも論理ドメインに割り当てられていない場合には、ドメイン割り当て済みのコア数に「1」を加算するとともに、ドメイン未割り当てのコア数から「1」を減算する。
また、ユーザによってライセンスが追加購入されたとき、ドメイン管理部140は、追加されたライセンス数の入力を受ける。ドメイン管理部140は、入力された追加ライセンス数を、ドメイン未割り当てのコア数に加算するとともに、同じ追加ライセンス数を、ライセンスなしのコア数から減算する。これにより、ユーザが使用できるコアの数が追加ライセンスの数だけ増加する。
さらに、ドメイン管理部140は、スレッドの異常を検知したとき、上記のように、異常が検知されたスレッドを含むコアを、他のコアに置き換える。異常が検知されたスレッドがいずれかの論理ドメインに割り当て済みであった場合、ドメイン管理部140は、ドメイン割り当て済みのコア数から「1」を減算するとともに、異常コア数に「1」を加算する。
図8は、ドメイン管理テーブルに登録される情報の例を示す図である。ドメイン管理テーブル152には、コアIDおよびスレッドIDに対応付けて、ステータスおよびドメインIDが登録される。
コアIDは、ライセンス設定対象のコアを識別するための情報である。スレッドIDは、対応するコアに含まれるスレッドを識別するための情報である。
ステータスは、対応するスレッドの状態を示す。ステータスの欄には、「in use」,「free」,「fail」のいずれかが登録される。「in use」は、対応するスレッドに論理ドメインが割り当てられていることを示す。「free」は、対応するスレッドに論理ドメインが割り当てられていないことを示す。「fail」は、対応するスレッドから異常が検出され、そのスレッドに対する論理ドメインの割り当てが禁止されていることを示す。
ドメイン管理部140は、2つのスレッドのうち少なくとも一方のステータスが「in use」であるコアを、コア管理テーブル151におけるドメイン割り当て済みのコアの1つとしてカウントする。また、2つのスレッドのステータスがいずれも「free」であるコアは、コア管理テーブル151におけるドメイン未割り当てのコアまたはライセンスなしのコアのいずれかとしてカウントされる。
ドメインIDの欄には、対応するスレッドに割り当てられた論理ドメインの識別番号が登録される。また、対応するスレッドに論理ドメインが割り当てられていない場合、ドメインIDの欄には「none」が登録される。
ドメイン管理部140は、管理端末などからの要求に応じて論理ドメインを設定する際や、スレッドの異常が検知された場合などに、ドメイン管理テーブル152におけるステータスおよびドメインIDの各欄を更新する。
なお、以上のコア管理テーブル151およびドメイン管理テーブル152は、例えば、前述したハイパーバイザプログラムおよびドメイン管理プログラムが実行されるCPUチップが搭載されたビルディングブロック内のHDDに格納され、同じビルディングブロック内のメモリに展開される。
次に、異常が検知されたスレッドを他のスレッドに置き換える際のサーバ装置100の処理について、フローチャートを用いて説明する。図9および図10は、スレッドの置き換え処理の例を示すフローチャートである。
[ステップS11]異常検知部131は、論理ドメインが割り当てられているいずれかのスレッドから異常を検知すると、その旨をドメイン管理部140に通知する。これにより、ステップS12以降の処理が開始される。
[ステップS12]サーバ装置100には、コア単位での置き換えを行うか否かを示す情報があらかじめ設定されている。この情報は、ユーザの操作によって、例えば管理端末からサーバ装置100に入力される。この情報は、例えば、前述のドメイン管理プログラムと同じ不揮発性記憶装置に格納される。
スレッドの異常が検知されたことの通知を受けたドメイン管理部140は、設定された上記の情報に基づき、コア単位で置き換えを行うか否かを判定する。コア単位で置き換えを行う場合にはステップS13の処理が実行され、行わない場合には図10のステップS21の処理が実行される。
[ステップS13]ドメイン管理部140は、コア管理テーブル151に基づき、ライセンスなしのコアが存在するかを判定する。ライセンスなしのコアが存在する場合にはステップS14の処理が実行され、存在しない場合には図10のステップS21の処理が実行される。
[ステップS14]ドメイン管理部140は、ステップS11で異常が検知されたスレッドの切り離し処理を行う。後述するように、ドメイン管理部140は、異常が検知されたスレッドに割り当てられていた論理ドメインで動作するゲストOSに対して、そのスレッドの切り離しを指示する。また、ドメイン管理部140は、ドメイン管理テーブル152において、異常が検知されたスレッドに対応するステータスを「in use」から「fail」に更新するとともに、そのスレッドに対応するドメインIDの欄を「none」に更新する。
[ステップS15]ドメイン管理部140は、ドメイン管理テーブル152に基づき、2つのスレッドのどちらにも論理ドメインが割り当てられていないコアを選択する。ドメイン管理部140は、選択したコアからスレッドを1つ選択し、選択したスレッドの組み込み処理を行う。
ドメイン管理部140は、ドメイン管理テーブル152において、選択したスレッドに対応するステータスを「free」から「in use」に更新するとともに、そのスレッドに対応するドメインIDの欄に、異常が検知されたスレッドに割り当てられていた論理ドメインのIDを登録する。また、後述するように、ドメイン管理部140は、異常が検知されたスレッドに割り当てられていた論理ドメインで動作するゲストOSに対して、選択したスレッドの組み込みを指示する。
[ステップS16]ドメイン管理部140は、ドメイン管理テーブル152に基づき、異常が検知されたスレッドを含むコア内の他方のスレッドに、論理ドメインが割り当てられているかを判定する。他方のスレッドに論理ドメインが割り当てられている場合にはステップS17の処理が実行され、割り当てられていない場合にはステップS19の処理が実行される。
[ステップS17]ドメイン管理部140は、他方のスレッドの切り離し処理を行う。基本的な処理手順はステップS14と同様であり、ドメイン管理部140は、他方のスレッドに割り当てられていた論理ドメインで動作するゲストOSに対して、そのスレッドの切り離しを指示する。また、ドメイン管理部140は、ドメイン管理テーブル152において、他方のスレッドに対応するステータスを「in use」から「free」に更新するとともに、そのスレッドに対応するドメインIDの欄を「none」に更新する。
[ステップS18]ドメイン管理部140は、ステップS15で選択したコア内のスレッドのうち、ステップS15で選択していない他方のスレッド(以下、「非選択のスレッド」と呼ぶ)の組み込み処理を行う。基本的な処理手順はステップS15と同様であり、ドメイン管理部140は、ドメイン管理テーブル152において、非選択のスレッドに対応するステータスを「free」から「in use」に更新するとともに、そのスレッドに対応するドメインIDの欄に、ステップS17で切り離したスレッドに割り当てられていた論理ドメインのIDを登録する。また、後述するように、ドメイン管理部140は、ステップS17で切り離したスレッドに割り当てられていた論理ドメインで動作するゲストOSに対して、非選択のスレッドの組み込みを指示する。
[ステップS19]ドメイン管理部140は、コア管理テーブル151における異常コア数に「1」を加算するとともに、ライセンスなしのコア数から「1」を減算する。これによりコアの置き換え処理が完了し、各論理ドメインの通常の運用が続行される。
以上のステップS14〜S19の処理によれば、異常が検知されたスレッドを含むコアが、他のコアに置き換えられる。この場合、動作中のコアの数は変化しないため、ライセンス超過が発生することなく、異常が検知されたスレッドを置き換えることができる。
[ステップS21]サーバ装置100には、スレッド単位での置き換えを行うか否かを示す情報があらかじめ設定されている。この情報は、ユーザの操作によって、例えば管理端末からサーバ装置100に入力される。この情報は、例えば、前述のドメイン管理プログラムと同じ不揮発性記憶装置に格納される。
ドメイン管理部140は、設定された上記の情報に基づき、スレッド単位で置き換えを行うか否かを判定する。スレッド単位で置き換えを行う場合にはステップS22の処理が実行され、行わない場合にはステップS25の処理が実行される。
[ステップS22]ドメイン管理部140は、ドメイン管理テーブル152に基づき、ステータスが「free」であるスレッド、すなわち、論理ドメインが未割り当てであり、かつ異常が検知されていないスレッドが存在するかを判定する。ステータスが「free」のコアが存在する場合にはステップS23の処理が実行され、存在しない場合にはステップS25の処理が実行される。
[ステップS23]ドメイン管理部140は、ステップS11で異常が検知されたスレッドの切り離し処理を行う。この処理はステップS14と同じであるので、説明を省略する。
[ステップS24]ドメイン管理部140は、ドメイン管理テーブル152に基づき、ステータスが「free」であるスレッドを選択し、選択したスレッドの組み込み処理を行う。
基本的な処理手順はステップS15と同様であり、ドメイン管理部140は、ドメイン管理テーブル152において、選択したスレッドに対応するステータスを「free」から「in use」に更新するとともに、そのスレッドに対応するドメインIDの欄に、異常が検知されたスレッドに割り当てられていた論理ドメインのIDを登録する。また、ドメイン管理部140は、異常が検知されたスレッドに割り当てられていた論理ドメインで動作するゲストOSに対して、選択したスレッドの組み込みを指示する。
これによりスレッド置き換え処理が完了し、各論理ドメインの通常の運用が続行される。
以上のステップS23,S24の処理によれば、異常が検知されたスレッドが、すでに一方のスレッドに論理ドメインが割り当てられていたコアにおける他方のスレッドに置き換えられる。この場合、動作中のコアの数は増加しないため、ライセンス超過が発生することなく、異常が検知されたスレッドを置き換えることができる。
[ステップS25]ドメイン管理部140は、ステップS11で異常が検知されたスレッドの切り離し処理を行う。この処理はステップS14,S23と同じであるので、説明を省略する。
図11は、スレッド切り離し処理の例を示すフローチャートである。この図11の処理は、図9のステップS14,S17、図10のステップS23,S25に対応する。
[ステップS31]ドメイン管理部140は、切り離し対象のスレッドのIDを決定する。
[ステップS32]ドメイン管理部140は、切り離し対象のスレッドに割り当てられていた論理ドメインで動作するゲストOSに対して、切り離し対象のスレッドのIDを通知して、スレッドの切り離しを指示する。
[ステップS33]切り離し指示を受けたゲストOSは、切り離し対象のスレッドを用いて実行されている処理を、自身に割り当てられている他のスレッドに引き継がせる。また、ゲストOSは、切り離し対象のスレッドを、自身が使用しない状態に移行させる。以上の処理が完了すると、ゲストOSは、ハイパーバイザ130に対して、切り離し対象のスレッドの停止を依頼する。
[ステップS34]ドメイン管理部140は、切り離し対象のスレッドの停止依頼を、ハイパーバイザ130を介して受け付ける。ドメイン管理部140は、ドメイン管理テーブル152において、切り離し対象のスレッドに対応するステータスを「in use」から「fail」に更新するとともに、そのスレッドに対応するドメインIDの欄を「none」に更新する。
図12は、スレッド組み込み処理の例を示すフローチャートである。この図12の処理は、図9のステップS15,S18、図10のステップS24に対応する。
[ステップS41]ドメイン管理部140は、組み込み対象のスレッドのIDを決定する。
[ステップS42]ドメイン管理部140は、ドメイン管理テーブル152において、組み込み対象のスレッドに対応するステータスを「free」から「in use」に更新するとともに、そのスレッドに対応するドメインIDの欄に、置き換え前のスレッドに割り当てられていた論理ドメインのIDを登録する。
[ステップS43]ドメイン管理部140は、組み込み対象のスレッドに新たに割り当てた論理ドメインで動作するゲストOSに対して、組み込み対象のスレッドのIDを通知して、スレッドの組み込みを指示する。
[ステップS44]組み込み指示を受けたゲストOSは、ハイパーバイザ130に対して、組み込み対象のスレッドの動作開始を依頼する。また、ゲストOSは、組み込み対象のスレッドのレジスタ、TLB(Translation Lookaside Buffer)などの初期化処理を行う。
[ステップS45]ゲストOSは、組み込み対象のスレッドに処理を割り当てる。
次に、コア単位の置き換えを行った場合における管理テーブルの遷移例を挙げる。図13は、コア管理テーブルの遷移の例を示す図である。また、図14は、ドメイン管理テーブルの遷移の例を示す図である。
図13および図14の例では、サーバ装置100は、それぞれ2つのスレッドを含む8つのコアを備えるものとする。そして、コア6台分のライセンスが設定されたものとする。初期状態では、図13の上段に示すように、コア管理テーブル151における異常コア数は「0」であり、ライセンスなしのコア数は「2」である。
また、図14に示すように、スレッドに異常が発生する前の状態では、スレッド#0〜#4に対して論理ドメインが割り当てられ、その他のスレッドには論理ドメインが割り当てられていないものとする。この場合、コア#0〜#2が動作状態となるので、コア管理テーブル151においては、ドメイン割り当て済みのコア数が「3」となり、ドメイン未割り当てのコア数も「3」となる。
この状態から、例としてスレッド#2から異常が検知されたものとする。コア単位での置き換えを行う場合、ドメイン管理部140は、ドメイン管理テーブル152において、スレッド#2に対応するステータスを「in use」から「fail」に更新する。また、ドメイン管理部140は、スレッド#3に対応するステータスを「in use」から「free」に更新する。さらに、ドメイン管理部140は、スレッド#2,#3にそれぞれ対応するドメインIDの欄を、ともに「1」から「none」に更新する。これにより、論理ドメイン#1からスレッド#2,#3が切り離され、スレッド#2,#3が含まれるコア#1の動作が禁止される。
また、ドメイン管理部140は、2つのスレッドがともに「free」であるコアとして、例えばコア#3を選択する。この場合、ドメイン管理部140は、コア#3に含まれるスレッド#6,#7に対応するステータスを、ともに「free」から「in use」に更新する。また、ドメイン管理部140は、スレッド#6に対応するドメインIDの欄に、スレッド#2に割り当てられていた論理ドメインを示すドメインID「1」を登録する。さらに、ドメイン管理部140は、スレッド#7に対応するドメインIDの欄に、スレッド#3に割り当てられていた論理ドメインを示すドメインID「1」を登録する。これにより、スレッド#6,#7が論理ドメイン#1に組み込まれる。
このとき、ドメイン管理部140は、コア管理テーブル151における異常コア数に「1」を加算するとともに、ライセンスなしのコア数から「1」を減算する。この場合、ライセンスありのコア数、すなわち、論理ドメインが割り当て済みのコア数と論理ドメインが未割り当てのコア数との合計は、「6」のまま変化しない。すなわち、ライセンス超過を発生させることなく、異常スレッドを他の正常なスレッドに置き換えることが可能になる。
〔第3の実施の形態〕
図15は、第3の実施の形態に係る情報処理装置が備える機能の構成例を示すブロック図である。
図15に示すサーバ装置100aは、第2の実施の形態に係るサーバ装置100を、仮想マシンを構築する代わりに、物理パーティションを設定するように変形したものである。図15に示す物理パーティション#0〜#3には、サーバ装置100aが備えるハードウェアリソースの一部がそれぞれ割り当てられる。ここで、各物理パーティションに割り当てられるCPUは、コア内のスレッドに対応する。また、各物理パーティションには、複数のCPU、すなわち複数のスレッドが割り当てられてもよい。
そして、各物理パーティションにおいては、割り当てられた1つ以上のCPU、すなわち1つ以上のスレッドが、OSプログラムを実行する。これにより、各物理パーティションにおいてそれぞれ個別のOSを動作させることができる。図15の例では、物理パーティション#0,#1,#2,#3において、それぞれOS#0,#1,#2,#3が動作する。
サーバ装置100aは、システム管理部150を備える。システム管理部150の処理は、第2の実施の形態におけるドメイン管理部140の処理に対応する。なお、システム管理部150の処理は、サーバ装置100aが備えるプロセッサがシステム管理プログラムを実行することで実現される。システム管理プログラムは、例えば、いずれかのビルディングブロックに搭載された少なくとも1つのCPUチップによって実行される。
また、サーバ装置100aの記憶装置には、コア管理テーブル151およびパーティション管理テーブル152aが記憶される。コア管理テーブル151に登録される情報は、第2の実施の形態と同様である。パーティション管理テーブル152aの構成は、図8のドメイン管理テーブル152における「ドメインID」を「パーティションID」に置き換えた構成となる。すなわち、パーティション管理テーブル152aにおいて、それぞれ個別のOSが動作するパーティションに対するスレッドの割り当てが管理される。
サービスプロセッサ120の処理は、サービスプロセッサ120のCPU121(図3参照)が所定のファームウェアプログラムを実行することで実現される。サービスプロセッサ120は、異常検知部131aを備える。異常検知部131aは、第2の実施の形態の異常検知部131と同様に、コア内のスレッドごとに個別のハードウェアの異常発生を検知することができる
以上のサーバ装置100aにおいては、第2の実施の形態におけるハイパーバイザ130、ドメイン管理部140およびゲストOSとの間の処理が、サービスプロセッサ120、システム管理部150およびOSとの間で実行される。すなわち、第3の実施の形態では、図9〜図12に示した処理が、ハイパーバイザ130をサービスプロセッサ120に、ドメイン管理部140をシステム管理部150に、ゲストOSをOSにそれぞれ置き換えることで実現される。これにより、第3の実施の形態でも、スレッドに異常が発生した場合に、ライセンス超過を発生させることなく、異常が発生したスレッドを他の正常なスレッドに置き換えることができる。
〔他のハードウェア資源の置き換え処理例〕
上記の第2,第3の実施の形態では、コアに対してライセンスを設定した場合について説明したが、例えば、サーバ装置が備える他のハードウェア資源に対してライセンスが設定されてもよい。
ここでは、サーバ装置に搭載されたメモリ装置に対してライセンスが設定される場合について説明する。サーバ装置は、複数のメモリ装置を有しており、メモリ装置を単位としてライセンスが設定される。また、例えば、第2の実施の形態における論理ドメインごと、あるいは、第3の実施の形態における物理パーティションごとに、各メモリ装置の記憶領域を分割した分割領域を単位としてメモリ資源が割り当てられるものとする。そして、第2の実施の形態における異常検知部131、あるいは第3の実施の形態における異常検知部131aは、上記の分割領域ごとに異常を検知できるものとする。
図16は、メモリ装置に対するライセンス設定の第1の例を示す図である。図16に示すビルディングブロック110には、複数のメモリモジュール310が搭載されている。メモリモジュール310は、例えば、DIMM(Dual Inline Memory Module)規格などに準拠した基板である。また、メモリモジュール310のそれぞれには、複数のメモリチップ320が搭載されている。
なお、ビルディングブロックは、図2に示したビルディングブロック110a〜110dのそれぞれに対応する。また、1つまたは複数のメモリモジュール310は、図2に示したメモリ112a,112bのいずれかに対応する。
図16において、例えば、メモリモジュール310が上記のメモリ装置に対応し、メモリモジュール310内の各メモリチップ320が、上記の分割領域に対応する。すなわち、サーバ装置は、論理ドメインまたは物理パーティションに対して、メモリチップ320を単位としてメモリ資源を割り当てる。その一方で、メモリモジュール310を単位としてライセンスが設定される。
サーバ装置は、メモリチップ320ごとに異常を監視する。そして、サーバ装置は、論理ドメインまたは物理パーティションに割り当て済みのいずれかのメモリチップ320から異常を検知すると、異常が検知されたメモリチップ320を含むメモリモジュール310の使用を禁止する。これとともに、サーバ装置は、使用を禁止したメモリモジュール310を、使用されていない他のメモリモジュール310(すなわち、内部のすべてのメモリチップ320が論理ドメインまたは物理パーティションに割り当てられていないメモリモジュール310)に置き換え、置き換えたメモリモジュール310の使用を開始する。
このような処理により、メモリチップ320の異常が発生した場合でも、ライセンス超過を起こすことなく、メモリチップ320を置き換えることができる。
なお、図16の例では、メモリモジュール310を単位としてライセンスを設定したが、他の例として、同一メモリモジュール310内の隣接する複数個のメモリチップ310を単位としてライセンスが設定されてもよい。この場合、隣接する複数個のメモリチップ310の合計記憶容量を単位としてライセンスが設定されてもよい。
図17は、メモリ装置に対するライセンス設定の第2の例を示す図である。図17の例は、上記のメモリ装置をメモリモジュール310内のメモリチップ320とし、上記の分割領域を、メモリチップ320のメモリ領域を例えば均等の容量で分割した部分領域330としたものである。
図17の例では、サーバ装置は、論理ドメインまたは物理パーティションに対して、部分領域330を単位としてメモリ資源を割り当てる。その一方で、メモリチップ320を単位としてライセンスが設定される。
サーバ装置は、論理ドメインまたは物理パーティションに割り当て済みのいずれかの部分領域330から異常を検知すると、異常が検知された部分領域330を含むメモリチップ320の使用を禁止する。これとともに、サーバ装置は、使用を禁止したメモリチップ320を、使用されていない他のメモリチップ320に置き換え、置き換えたメモリチップ320の使用を開始する。
このような処理により、部分領域330の異常が発生した場合でも、ライセンス超過を起こすことなく、部分領域330を置き換えることができる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 複数の処理を並列に実行可能であって、並列に実行する処理ごとに個別に設けられた個別回路を有する演算回路を、複数備えた情報処理装置において、
前記演算回路を単位として設定された使用権の数を記憶する記憶部と、
複数の前記演算回路のうち、前記使用権の数の前記演算回路の動作を許可するとともに、動作中の前記演算回路に搭載されたいずれかの前記個別回路の異常を検知すると、異常が検知された前記個別回路が搭載された前記演算回路における他の前記個別回路の動作を停止させ、動作していないいずれかの前記演算回路の動作を開始させる制御部と、
を有することを特徴とする情報処理装置。
(付記2) 前記制御部は、動作中の前記演算回路に搭載されたいずれかの前記個別回路の異常を検知したとき、動作していない前記演算回路が存在しない場合には、動作中の前記演算回路の中に使用されていない前記個別回路があるかを判定し、使用されていない前記個別回路がある場合には、異常が検知された前記個別回路を用いて実行されていた処理を、使用されていない前記個別回路を用いて実行させることを特徴とする付記1記載の情報処理装置。
(付記3) 前記記憶部は、動作中の前記演算回路に搭載された前記個別回路のうち、1つまたは複数のオペレーティングシステムのいずれかの処理に割り当てられた前記個別回路の情報を保持する管理情報を記憶し、
前記制御部は、前記管理情報においていずれかのオペレーティングシステムの処理に割り当てられた前記個別回路の異常を検知したとき、動作していない前記演算回路が存在しない場合には、前記管理情報に基づき、動作中の前記演算回路に搭載された前記個別回路の中にいずれのオペレーティングシステムの処理にも割り当てられていない前記個別回路があるかを判定し、いずれのオペレーティングシステムの処理にも割り当てられていない前記個別回路がある場合には、異常が検知された前記個別回路がいずれのオペレーティングシステムにも割り当てられていない前記個別回路に置き換えられるように前記管理情報を更新する、
ことを特徴とする付記1記載の情報処理装置。
(付記4) 前記情報処理装置は、複数のメモリ装置を有し、
前記記憶部は、前記メモリ装置を単位として設定されたメモリ使用権の数を記憶し、
前記制御部は、複数の前記メモリ装置のうち、前記メモリ使用権の数の前記メモリ装置の使用を許可するとともに、使用中の前記メモリ装置の記憶領域を分割した分割領域のいずれかから異常を検知すると、異常が検知された前記分割領域を含む前記メモリ装置における他の前記分割領域の使用を停止させ、使用されていないいずれかの前記メモリ装置の使用を開始する、
ことを特徴とする付記1〜3のいずれか1つに記載の情報処理装置。
(付記5) 複数の処理を並列に実行可能であって、並列に実行する処理ごとに個別に設けられた個別回路を有する演算回路を、複数備えた情報処理装置における制御方法であって、
前記演算回路を単位として設定された使用権の数を記憶する記憶部を参照して、複数の前記演算回路のうち、前記使用権の数の前記演算回路の動作を許可し、
動作中の前記演算回路に搭載されたいずれかの前記個別回路の異常を検知すると、異常が検知された前記個別回路が搭載された前記演算回路における他の前記個別回路の動作を停止させ、動作していないいずれかの前記演算回路の動作を開始させる、
ことを特徴とする制御方法。
(付記6) 動作中の前記演算回路に搭載されたいずれかの前記個別回路の異常を検知したとき、動作していない前記演算回路が存在しない場合には、動作中の前記演算回路の中に使用されていない前記個別回路があるかを判定し、使用されていない前記個別回路がある場合には、異常が検知された前記個別回路を用いて実行されていた処理を、使用されていない前記個別回路を用いて実行させる、
処理をさらに含むことを特徴とする付記5記載の制御方法。
(付記7) 前記記憶部は、動作中の前記演算回路に搭載された前記個別回路のうち、1つまたは複数のオペレーティングシステムのいずれかの処理に割り当てられた前記個別回路の情報を保持する管理情報を記憶し、
前記管理情報においていずれかのオペレーティングシステムの処理に割り当てられた前記個別回路の異常を検知したとき、動作していない前記演算回路が存在しない場合には、前記管理情報に基づき、動作中の前記演算回路に搭載された前記個別回路の中にいずれのオペレーティングシステムの処理にも割り当てられていない前記個別回路があるかを判定し、いずれのオペレーティングシステムの処理にも割り当てられていない前記個別回路がある場合には、異常が検知された前記個別回路がいずれのオペレーティングシステムにも割り当てられていない前記個別回路に置き換えられるように前記管理情報を更新する、
処理をさらに含むことを特徴とする付記5記載の制御方法。
(付記8) 前記情報処理装置は、複数のメモリ装置を有し、
前記記憶部は、前記メモリ装置を単位として設定されたメモリ使用権の数を記憶し、
複数の前記メモリ装置のうち、前記メモリ使用権の数の前記メモリ装置の使用を許可し、使用中の前記メモリ装置の記憶領域を分割した分割領域のいずれかから異常を検知すると、異常が検知された前記分割領域を含む前記メモリ装置における他の前記分割領域の使用を停止させ、使用されていないいずれかの前記メモリ装置の使用を開始する、
処理をさらに含むことを特徴とする付記5〜7のいずれか1つに記載の制御方法。
1 情報処理装置
2 記憶部
3 制御部
11,12 演算回路
21〜24 個別回路

Claims (5)

  1. それぞれ処理を並列に実行する複数の個別回路を有する演算回路を、複数備えた情報処理装置において、
    前記演算回路を単位として設定された使用権の数を記憶する記憶部と、
    複数の前記演算回路のうち、前記使用権の数の前記演算回路の動作を許可するとともに、動作中の前記演算回路に搭載された前記複数の個別回路のうち第1の個別回路の異常を検知すると、動作していない前記演算回路が存在する場合には、前記第1の個別回路が搭載された前記演算回路における他の個別回路の動作を停止させ、動作していないいずれかの前記演算回路の動作を開始させ、動作していない前記演算回路が存在しない場合には、動作中の前記演算回路の中に使用されていない第2の個別回路があるかを判定し、前記第2の個別回路がある場合には、前記第1の個別回路を用いて実行されていた処理を、前記第2の個別回路を用いて実行させる制御部と、
    を有することを特徴とする情報処理装置。
  2. それぞれ処理を並列に実行する複数の個別回路を有する演算回路を、複数備えた情報処理装置において、
    前記演算回路を単位として設定された使用権の数と、動作中の前記演算回路に搭載された前記複数の個別回路のうち、1つまたは複数のオペレーティングシステムのいずれかの処理に割り当てられた第1の個別回路の情報を保持する管理情報とを記憶する記憶部と、
    複数の前記演算回路のうち、前記使用権の数の前記演算回路の動作を許可するとともに、前記第1の個別回路の異常を検知すると、動作していない前記演算回路が存在する場合には、前記第1の個別回路が搭載された前記演算回路における他の個別回路の動作を停止させ、動作していないいずれかの前記演算回路の動作を開始させ、動作していない前記演算回路が存在しない場合には、前記管理情報に基づき、動作中の前記演算回路に搭載された前記複数の個別回路の中にいずれのオペレーティングシステムの処理にも割り当てられていない第2の個別回路があるかを判定し、前記第2の個別回路がある場合には、前記第1の個別回路が前記第2の個別回路に置き換えられるように前記管理情報を更新する制御部と、
    を有することを特徴とする情報処理装置。
  3. 前記情報処理装置は、複数のメモリ装置を有し、
    前記記憶部は、前記メモリ装置を単位として設定されたメモリ使用権の数を記憶し、
    前記制御部は、複数の前記メモリ装置のうち、前記メモリ使用権の数の前記メモリ装置の使用を許可するとともに、使用中の前記メモリ装置の記憶領域を分割した分割領域のいずれかから異常を検知すると、異常が検知された前記分割領域を含む前記メモリ装置における他の前記分割領域の使用を停止させ、使用されていないいずれかの前記メモリ装置の使用を開始する、
    ことを特徴とする請求項1または2記載の情報処理装置。
  4. それぞれ処理を並列に実行する複数の個別回路を有する演算回路を、複数備えた情報処理装置における制御方法であって、
    前記演算回路を単位として設定された使用権の数を記憶する記憶部を参照して、複数の前記演算回路のうち、前記使用権の数の前記演算回路の動作を許可し、
    動作中の前記演算回路に搭載された前記複数の個別回路のうち第1の個別回路の異常を検知すると、動作していない前記演算回路が存在する場合には、前記第1の個別回路が搭載された前記演算回路における他の個別回路の動作を停止させ、動作していないいずれかの前記演算回路の動作を開始させ、動作していない前記演算回路が存在しない場合には、動作中の前記演算回路の中に使用されていない第2の個別回路があるかを判定し、前記第2の個別回路がある場合には、前記第1の個別回路を用いて実行されていた処理を、前記第2の個別回路を用いて実行させる、
    ことを特徴とする制御方法。
  5. それぞれ処理を並列に実行する複数の個別回路を有する演算回路を、複数備えた情報処理装置における制御方法であって、
    前記演算回路を単位として設定された使用権の数と、動作中の前記演算回路に搭載された前記複数の個別回路のうち、1つまたは複数のオペレーティングシステムのいずれかの処理に割り当てられた第1の個別回路の情報を保持する管理情報とを記憶する記憶部を参照して、複数の前記演算回路のうち、前記使用権の数の前記演算回路の動作を許可し、
    前記第1の個別回路の異常を検知すると、動作していない前記演算回路が存在する場合には、前記第1の個別回路が搭載された前記演算回路における他の個別回路の動作を停止させ、動作していないいずれかの前記演算回路の動作を開始させ、動作していない前記演算回路が存在しない場合には、前記管理情報に基づき、動作中の前記演算回路に搭載された前記複数の個別回路の中にいずれのオペレーティングシステムの処理にも割り当てられていない第2の個別回路があるかを判定し、前記第2の個別回路がある場合には、前記第1の個別回路が前記第2の個別回路に置き換えられるように前記管理情報を更新する
    ことを特徴とする制御方法。
JP2012191491A 2012-08-31 2012-08-31 情報処理装置および制御方法 Expired - Fee Related JP6074955B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012191491A JP6074955B2 (ja) 2012-08-31 2012-08-31 情報処理装置および制御方法
US13/966,330 US9032482B2 (en) 2012-08-31 2013-08-14 Information processing apparatus and control method
EP13181331.3A EP2704050B1 (en) 2012-08-31 2013-08-22 Capacity on Demand processing apparatus and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012191491A JP6074955B2 (ja) 2012-08-31 2012-08-31 情報処理装置および制御方法

Publications (2)

Publication Number Publication Date
JP2014048907A JP2014048907A (ja) 2014-03-17
JP6074955B2 true JP6074955B2 (ja) 2017-02-08

Family

ID=49110984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012191491A Expired - Fee Related JP6074955B2 (ja) 2012-08-31 2012-08-31 情報処理装置および制御方法

Country Status (3)

Country Link
US (1) US9032482B2 (ja)
EP (1) EP2704050B1 (ja)
JP (1) JP6074955B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9772867B2 (en) * 2014-03-27 2017-09-26 International Business Machines Corporation Control area for managing multiple threads in a computer
US9213569B2 (en) 2014-03-27 2015-12-15 International Business Machines Corporation Exiting multiple threads in a computer
US9223574B2 (en) 2014-03-27 2015-12-29 International Business Machines Corporation Start virtual execution instruction for dispatching multiple threads in a computer
US9195493B2 (en) 2014-03-27 2015-11-24 International Business Machines Corporation Dispatching multiple threads in a computer
US9361159B2 (en) 2014-04-01 2016-06-07 International Business Machines Corporation Runtime chargeback in a simultaneous multithreading (SMT) environment
US9417927B2 (en) 2014-04-01 2016-08-16 International Business Machines Corporation Runtime capacity planning in a simultaneous multithreading (SMT) environment
US9389897B1 (en) 2014-12-18 2016-07-12 International Business Machines Corporation Exiting multiple threads of a simulation environment in a computer
JP2017033181A (ja) * 2015-07-30 2017-02-09 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム
WO2017022117A1 (ja) * 2015-08-06 2017-02-09 富士通株式会社 制御装置,制御プログラム及び制御方法
JP6819061B2 (ja) * 2016-03-28 2021-01-27 日本電気株式会社 情報処理装置、プロセス切り替え方法及びプログラム
US12061930B2 (en) 2019-09-27 2024-08-13 Intel Corporation Software defined silicon feature licensing
DE112020004561T5 (de) 2019-09-27 2022-10-13 Intel Corporation Systeme, Verfahren und Einrichtungen für softwaredefinierte Siliziumsicherheit
US11977612B2 (en) 2020-07-07 2024-05-07 Intel Corporation Software defined silicon guardianship
WO2022250710A1 (en) * 2021-05-26 2022-12-01 Arris Enterprises Llc License management for vcores

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3561002B2 (ja) 1994-05-18 2004-09-02 富士通株式会社 ディスク装置
US7451183B2 (en) 2003-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Assembly and method for balancing processors in a partitioned server
US7275180B2 (en) 2003-04-17 2007-09-25 International Business Machines Corporation Transparent replacement of a failing processor
US7814366B2 (en) * 2005-11-15 2010-10-12 Intel Corporation On-demand CPU licensing activation
JP4653838B2 (ja) 2006-02-28 2011-03-16 富士通株式会社 演算処理装置、演算処理装置の制御方法及び制御プログラム
US7493477B2 (en) * 2006-06-30 2009-02-17 Intel Corporation Method and apparatus for disabling a processor core based on a number of executions of an application exceeding a threshold
WO2009118886A1 (ja) 2008-03-28 2009-10-01 富士通株式会社 ハードウェアリソースの管理装置
WO2010046966A1 (ja) * 2008-10-21 2010-04-29 富士通株式会社 情報処理システムおよび使用権一元管理方法
JP5035299B2 (ja) * 2009-06-15 2012-09-26 株式会社日立製作所 マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム
JP2011227840A (ja) * 2010-04-23 2011-11-10 Hitachi Ltd 非smp構成でのサーバー間のコアライセンスの授受を制御する装置
US9286448B2 (en) * 2010-06-09 2016-03-15 Grant Philip Cushion Enhanced software license management
US8627128B2 (en) * 2010-11-09 2014-01-07 International Business Machines Corporation Power management for processing capacity upgrade on demand
US20120221884A1 (en) * 2011-02-28 2012-08-30 Carter Nicholas P Error management across hardware and software layers
US8856602B2 (en) * 2011-12-20 2014-10-07 International Business Machines Corporation Multi-core processor with internal voting-based built in self test (BIST)
EP3483771A1 (en) * 2011-12-30 2019-05-15 Intel Corporation Multi-level cpu high current protection

Also Published As

Publication number Publication date
US20140068792A1 (en) 2014-03-06
EP2704050A1 (en) 2014-03-05
US9032482B2 (en) 2015-05-12
JP2014048907A (ja) 2014-03-17
EP2704050B1 (en) 2016-10-26

Similar Documents

Publication Publication Date Title
JP6074955B2 (ja) 情報処理装置および制御方法
US7937615B2 (en) Method for improving reliability of multi-core processor computer
JP5035299B2 (ja) マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム
CN110083494B (zh) 在多核心环境中管理硬件错误的方法和装置
US9329937B1 (en) High availability architecture
US9032180B2 (en) Managing CPU resources for high availability micro-partitions
JP6191686B2 (ja) 情報処理装置、資源割当方法、及びプログラム
EP3767470B1 (en) Central processing unit cpu hot-remove method and apparatus, and central processing unit cpu hot-add method and apparatus
US9244826B2 (en) Managing CPU resources for high availability micro-partitions
US20130031310A1 (en) Computer system
JP2011186701A (ja) リソース割当装置、リソース割当方法、およびリソース割当プログラム
JP5998577B2 (ja) クラスタ監視装置、クラスタ監視方法、及びプログラム
US9158470B2 (en) Managing CPU resources for high availability micro-partitions
US20100083034A1 (en) Information processing apparatus and configuration control method
US11182183B2 (en) Workload placement using conflict cost
EP2979170B1 (en) Making memory of compute and expansion blade devices available for use by an operating system
JP2005234744A (ja) マルチプロセッサシステム及び障害処理方法
KR101188413B1 (ko) 차량 전자 제어 유닛의 안정성 확보를 위한 가상화 및 이중화 시스템 및 그 안정성 확보 방법
JP2013254354A (ja) コンピュータ装置及びソフトウェア管理方法及びプログラム
JP5201176B2 (ja) 情報処理装置
JP2008123129A (ja) マルチプロセッサシステム、障害処理方法、プログラム及び記録媒体
JP2013130999A (ja) マルチコアプロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161129

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: 20161213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161226

R150 Certificate of patent or registration of utility model

Ref document number: 6074955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees