(57)【要約】【課題】抜去対象のメモリ領域にシステム上コアとなるメモリ領域が存在する場合でも、抜去されないメモリに、抜去対象のメモリ領域のデータを退避可能なコンピュータシステムを提供する。【解決手段】活線挿抜制御装置１３は、記憶装置の一部のメモリ空間を、動的に組み込み、或いは、切り離す。各演算装置１２は、プログラムから見える仮想アドレス空間と記憶装置の物理アドレス空間とを結びつけるアドレス変換機構を有する。複数の演算装置１２の中から選定された演算装置１２ａは、抜去対象のメモリブロックＡ３０内のデータを、転送先として確保したメモリブロックＤ３３に転送する。各演算装置１２は、使用するページテーブルを切り替えて、メモリブロックＡ３０の物理アドレス空間と結び付けられていた仮想アドレス空間を、メモリブロックＤ３３の物理アドレス空間に結びつける。【選択図】図１
2007264976.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置の一部のメモリ空間を動的に組み込み及び切り離し可能な活線挿抜機能を有するコンピュータシステムにおいて、
プログラムから見える仮想アドレス空間と記憶装置の物理アドレス空間とを結びつけるアドレス変換機構と、
転送先として確保した活線挿抜対象外のメモリ空間に抜去対象のメモリ内のデータを転送する機能とを備え、
前記アドレス変換機構は、前記データの転送後に、前記抜去対象のメモリ空間の物理アドレス空間と結び付けられていた仮想アドレス空間を、前記転送先として確保したメモリ空間の物理アドレス空間に結びつけることを特徴とするコンピュータシステム。
【請求項２】
プロセッサを複数備え、該複数のプロセッサのうちから選定された主プロセッサが、前記データの転送を実施する、請求項１に記載のコンピュータシステム。
【請求項３】
前記主プロセッサは、前記データの転送に先立って、前記複数のプロセッサのうちの残りの従プロセッサに対し、アイドルルーチンへの分岐を指示する、請求項２に記載のコンピュータシステム。
【請求項４】
前記主プロセッサは、前記データの転送後に、前記従プロセッサに対して、前記抜去対象のメモリ空間の物理アドレス空間と結び付けられていた仮想アドレス空間を、前記転送先として確保したメモリ空間の物理アドレス空間に結びつけることを指示する、請求項２又は３に記載のコンピュータシステム。
【請求項５】
前記アドレス変換機構が、
前記仮想アドレス空間のアドレスを指定する仮想アドレスを記憶する仮想アドレスレジスタと、
前記仮想アドレスと、前記物理アドレス空間のアドレスとの対応関係を記憶するページテーブルと、
参照先のメモリ空間の物理アドレスを記憶する物理アドレスレジスタとを有する、請求項１〜４の何れか一に記載のコンピュータシステム。
【請求項６】
前記ページテーブルが、前記仮想アドレスと前記抜去対象のメモリ空間の物理アドレス空間とを結び付ける部分を含む第１のページテーブルと、前記仮想アドレスと前記転送先のメモリ空間の物理アドレス空間とを結びつける部分を含む第２のページテーブルとを含み、前記アドレス変換機構は、前記データ転送後に、使用するページテーブルを、前記第１のページテーブルから前記第２のページテーブルに切り替える、請求項５に記載のコンピュータシステム。
【請求項７】
前記データ転送では、前記抜去対象のメモリと、前記転送先のメモリとで、等しい相対アドレス位置にデータを転送する、請求項１〜６の何れか一に記載のコンピュータシステム。
【請求項８】
記憶装置の物理アドレス空間と結び付けられた仮想アドレスを用いて記憶装置にアクセスするコンピュータシステムにおけるデータ退避方法であって、
データ退避元の第１のメモリ空間から、データ退避先の第２のメモリ空間にデータを転送するステップと、
データ転送後に、前記第１のメモリ空間の物理アドレスに結び付けられていた仮想アドレスを、前記第２のメモリ空間の物理アドレスに結び付けるステップとを有することを特徴とするデータ退避方法。
【請求項９】
前記仮想アドレスと物理アドレスとを結びつけるステップが、
前記仮想アドレスと前記物理アドレスとの変換に用いるページテーブル中の、前記第１のメモリの物理アドレスに結び付けられた仮想アドレスのエントリを、前記第２のメモリ空間の物理アドレスに結び付けたページテーブルを作成するステップと、
前記仮想アドレスと前記物理アドレスとの変換に用いるページテーブルを、前記ページテーブルを作成するステップで作成したページテーブルに切り替えるステップとを有する、請求項８に記載のデータ退避方法。
【請求項１０】
前記コンピュータシステムが複数のプロセッサを有し、前記データを転送するステップを、前記複数のプロセッサの中から選定された主プロセッサが実行する、請求項８又は９に記載のデータ退避方法。
【請求項１１】
前記主プロセッサが、前記データ転送ステップに先立って、自身以外の従プロセッサに、アイドルルーチンに分岐させるステップを更に有する、請求項１０に記載のデータ退避方法。
【請求項１２】
記憶装置の物理アドレス空間と結び付けられた仮想アドレスを用いて記憶装置にアクセスするコンピュータシステムでデータ退避処理を実行するプログラムであって、
データ退避元の第１のメモリ空間から、データ退避先の第２のメモリ空間にデータを転送する処理と、
データ転送後に、前記第１のメモリ空間の物理アドレスに結び付けられていた仮想アドレスを、前記第２のメモリ空間の物理アドレスに結び付ける処理とを実行させることを特徴とするプログラム。
【請求項１３】
前記仮想アドレスと物理アドレスとを結びつける処理が、
前記仮想アドレスと前記物理アドレスとの変換に用いるページテーブル中の、前記第１のメモリの物理アドレスに結び付けられた仮想アドレスのエントリを、前記第２のメモリ空間の物理アドレスに結び付けたページテーブルを作成する処理と、
前記仮想アドレスと前記物理アドレスとの変換に用いるページテーブルを、前記ページテーブルを作成するステップで作成したページテーブルに切り替える処理とを有する、請求項１２に記載のプログラム。
【請求項１４】
前記コンピュータシステムが複数のプロセッサを有しており、前記データを転送する処理を、前記複数のプロセッサの中から選定された主プロセッサに実行させる、請求項１２又は１３に記載のプログラム。
【請求項１５】
前記主プロセッサに、前記データ転送ステップに先立って、自身以外の従プロセッサに、アイドルルーチンに分岐させる処理を更に実行させる、請求項１４に記載のデータ退避方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム、データ退避方法、及び、プログラムに関し、更に詳しくは、記憶装置内の一部のメモリ空間内のデータを他のメモリ空間に転送するコンピュータシステム、データ退避方法、及び、プログラムに関する。
【背景技術】
【０００２】
記憶装置を含むコンピュータシステムのシステム運用中に、新たに記憶装置を接続し、現在接続中の記憶装置を切り離す活線挿抜を行う技術がある。従来の技術では、活線挿抜において、抜去対象の記憶領域にデータがある場合には、
（１）抜去対象のデータを周辺装置或いは他の記憶装置に退避（バックアップ）させた後に抜去を行う、
（２）ハードウェア的な二重書き機能により、記憶装置の抜去されない別の部位に抜去対象と同じデータの写しを作成する、
方法が知られている。（１）の例としては、特許文献１に記載される、ハードディスク装置にバックアップを作成する技術や、特許文献２に記載される、不揮発性メモリを用いる技術がある。また、（２）の例としては、特許文献３に記載される、ライトバックキャッシュのキャッシュメモリ特性を利用して二重書きを行う技術がある。
【０００３】
【特許文献１】特開２００４−１８５１９９号公報
【特許文献２】特開２００４−２９５８８５号公報
【特許文献３】特開２００１−１４７８６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
近年、マイクロプロセッサの高速化や大規模化が進み、従来では大型コンピュータに採用されていた複雑なアドレス変換機構やメモリキャッシュなどを実装するプロセッサが多く登場している。また、マイクロプロセッサの高速化に伴い、チップセットの性能も、レイテンシの短縮に重点が置かれており、より高速なメモリアクセスが可能となっている。一方で、マイクロプロセッサを制御するファームウェアは、複雑なハードウェアを制御するために肥大化が進み、チップセットのレイテンシの短縮を背景に、それまでプロセッサ内部の制御記憶に格納していたファームウェアを、主記憶装置上に配置する方式が一般化している。
【０００５】
ファームウェア自身が動作する主記憶空間はコアメモリと呼ばれ、プロセッサの動作に欠かせないメモリ領域であるから、動的なメモリ構成変更や部分障害に対処できない特例的な部位となっている。上記（１）の手法では、退避処理を行う制御記憶や、システムの運用に欠かせない共通データが、活線挿抜における抜去対象の記憶領域に存在する場合には、退避処理を実行することができないという問題がある。
【０００６】
また、上記（２）の手法では、二重書きのための専用ハードウェア機構が必要になるため、バス制御装置のゲート量が増加するという問題がある、また、オペレーティングシステムが意識していないタイミングでデータ転送が行われることにより、この間はシステムバスが長時間に渡って高負荷状態となり、システムのスループットが低下する可能性がある。ハードウェアを使用したメモリの移動（主に二重書き）機能はメモリバスへの負荷が大きく、実際のシステムに適用した場合には、オペレーティングシステムやアプリケーションプログラムにも、いつ実行されるか分からないメモリバスの性能低下を見越した作り込みが必要となり、あまり現実的な方法とはいえない。
【０００７】
本発明は、メモリ移動のための専用のハードウェアを必要とせずに、抜去対象のメモリ領域にコアメモリの動作領域が存在する場合でも、抜去されないメモリに、抜去対象のメモリ領域のデータを退避可能なコンピュータシステム、データ退避方法、及び、プログラムを提供する。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のコンピュータシステムは、記憶装置の一部のメモリ空間を動的に組み込み及び切り離し可能な活線挿抜機能を有するコンピュータシステムにおいて、プログラムから見える仮想アドレス空間と記憶装置の物理アドレス空間とを結びつけるアドレス変換機構と、転送先として確保した活線挿抜対象外のメモリ空間に抜去対象のメモリ内のデータを転送する機能とを備え、前記アドレス変換機構は、前記データの転送後に、前記抜去対象のメモリ空間の物理アドレス空間と結び付けられていた仮想アドレス空間を、前記転送先として確保したメモリ空間の物理アドレス空間に結びつけることを特徴とする。
【０００９】
本発明のデータ退避方法は、記憶装置の物理アドレス空間と結び付けられた仮想アドレスを用いて記憶装置にアクセスするコンピュータシステムにおけるデータ退避方法であって、データ退避元の第１のメモリ空間から、データ退避先の第２のメモリ空間にデータを転送するステップと、データ転送後に、前記第１のメモリ空間の物理アドレスに結び付けられていた仮想アドレスを、前記第２のメモリ空間の物理アドレスに結び付けるステップとを有することを特徴とする。
【００１０】
本発明のプログラムは、記憶装置の物理アドレス空間と結び付けられた仮想アドレスを用いて記憶装置にアクセスするコンピュータシステムでデータ退避処理を実行するプログラムであって、データ退避元の第１のメモリ空間から、データ退避先の第２のメモリ空間にデータを転送する処理と、データ転送後に、前記第１のメモリ空間の物理アドレスに結び付けられていた仮想アドレスを、前記第２のメモリ空間の物理アドレスに結び付ける処理とを実行させることを特徴とする。
【００１１】
本発明のコンピュータシステム、データ退避方法、及び、プログラムでは、抜去対象のメモリ内のデータを、転送先のメモリに転送した後に、アドレス変換機構を用いて、抜去対象のメモリ空間の物理アドレス空間と結び付けられていた仮想アドレス空間を、転送先として確保したメモリ空間の物理アドレス空間に結びつける。このようにすることで、コンピュータシステム内のプロセッサは、抜去対象のメモリにアクセスする仮想アドレスを用いて、転送先メモリにアクセスできる。従って、抜去対象となるメモリに、システム上コアとなる領域が存在する場合でも、システム運用中に、動的に、記憶空間の一部を別の記憶空間に移動することができる。
【００１２】
本発明のコンピュータシステムでは、プロセッサを複数備え、該複数のプロセッサのうちから選定された主プロセッサが、前記データの転送を実施する構成を採用できる。また、本発明のデータ退避方法及びプログラムでは、コンピュータシステムが複数のプロセッサを有し、前記データの転送を、前記複数のプロセッサの中から選定された主プロセッサが実行する構成を採用できる。この場合、前記主プロセッサは、前記データの転送に先立って、前記複数のプロセッサのうちの残りの従プロセッサに対し、アイドルルーチンへの分岐を指示する構成を採用できる。このようにする場合には、主プロセッサによって、主プロセッサが意図したタイミングでデータの転送を開始でき、転送処理によるメモリバスの高負荷状態をシステム的な見地から予見してスケジューリングすることができる。
【００１３】
本発明のコンピュータシステムでは、前記主プロセッサは、前記データの転送後に、前記従プロセッサに対して、前記抜去対象のメモリ空間の物理アドレス空間と結び付けられていた仮想アドレス空間を、前記転送先として確保したメモリ空間の物理アドレス空間に結びつけることを指示する構成を採用できる。この指示を受けた従プロセッサは、指示に従って、アドレス変換機構の仮想アドレスの結びつけ先を変更することで、転送先のメモリにアクセスできる。
【００１４】
本発明のコンピュータシステムでは、前記アドレス変換機構が、前記仮想アドレス空間のアドレスを指定する仮想アドレスを記憶する仮想アドレスレジスタと、前記仮想アドレスと、前記物理アドレス空間のアドレスとの対応関係を記憶するページテーブルと、参照先のメモリ空間の物理アドレスを記憶する物理アドレスレジスタとを有する構成を採用できる。この場合、物理アドレスは、仮想アドレスを元にページテーブルを引くことで得ることができる。仮想アドレスと物理アドレスとの結びつけは、ページテーブルを変更することで実現できる。
【００１５】
本発明のコンピュータシステムでは、前記ページテーブルが、前記仮想アドレスと前記抜去対象のメモリ空間の物理アドレス空間とを結び付ける部分を含む第１のページテーブルと、前記仮想アドレスと前記転送先のメモリ空間の物理アドレス空間とを結びつける部分を含む第２のページテーブルとを含み、前記アドレス変換機構は、前記データ転送後に、使用するページテーブルを、前記第１のページテーブルから前記第２のページテーブルに切り替える構成を採用できる。データ転送後に、使用するページテーブルを切り替えることで、仮想アドレスを用いて、転送先のメモリにアクセスできる。
【００１６】
本発明のコンピュータシステムでは、前記データ転送では、前記抜去対象のメモリと、前記転送先のメモリとで、等しい相対アドレス位置にデータを転送することが好ましい。この場合、仮想アドレスと物理アドレスとの結びつけが変更された場合でも、抜去対象のメモリと転送先のメモリとで、同じアドレス位置に分岐できる。
【００１７】
本発明のデータ退避方法及びプログラムでは、前記仮想アドレスと物理アドレスとを結びつけるステップ（処理）が、前記仮想アドレスと前記物理アドレスとの変換に用いるページテーブル中の、前記第１のメモリの物理アドレスに結び付けられた仮想アドレスのエントリを、前記第２のメモリ空間の物理アドレスに結び付けたページテーブルを作成するステップと、前記仮想アドレスと前記物理アドレスとの変換に用いるページテーブルを、前記ページテーブルを作成するステップで作成したページテーブルに切り替えるステップとを有する構成を採用できる。
【発明の効果】
【００１８】
本発明のコンピュータシステム、データ退避方法、及び、プログラムでは、抜去対象のメモリ内のデータを、転送先のメモリに転送した後に、アドレス変換機構を用いて、抜去対象のメモリ空間の物理アドレス空間と結び付けられていた仮想アドレス空間を、転送先として確保したメモリ空間の物理アドレス空間に結びつける。このようにすることで、コンピュータシステム内のプロセッサは、抜去対象のメモリにアクセスする仮想アドレスを用いて、転送先メモリにアクセスできる。従って、抜去対象となるメモリに、システム上コアとなる領域が存在する場合でも、システム運用中に、動的に、記憶空間の一部を別の記憶空間に移動することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図１は、本発明の一実施形態のコンピュータシステムの構成を示している。コンピュータシステム１０は、記憶装置１１と、複数の演算装置（プロセッサ）１２ａ〜１２ｄと、活線挿抜制御装置１３とを備える。各演算装置１２と、記憶装置１１とは、メモリバス１４を介して接続される。また、各演算装置１２は、割り込み信号線１５を介して、演算装置１２間の同期制御を行う。記憶装置１１は、活線挿抜が可能な複数のメモリブロック３０〜３３で構成されており、任意のメモリブロックを、動的にシステムから切り離し、或いは、組み込むことができるように構成されている。
【００２０】
各演算装置１２は、アドレス変換機構を有し、演算装置１２内の演算器は、仮想アドレスを用いて、記憶装置１１内の物理アドレスにアクセスする。図２は、アドレス変換機構を用いたメモリアクセスの様子を示している。この例では、仮想アドレスと物理アドレスの変換には、１ウェイのセット連想マッピング方式を用いており、仮想アドレスレジスタ２０と、物理アドレスレジスタ２１と、メモリ又はアドレス変換バッファ（ＴＬＢ）を使用したページテーブル２２ａ、２２ｂとを用いる。
【００２１】
ページテーブル２２ａ、２２ｂは、タグ部と、これに対応する物理ページアドレス部に分かれている。物理ページアドレス部の一部のビットフィールド（図中の斜線部分）は、メモリブロック番号を表し、アクセスしようとする物理ページがどのメモリブロック３０〜３３に属しているか判別可能となっている。ページテーブルポインタ２３は、ページテーブル２２ａ、２２ｂのメモリ上での所在を表し、ページテーブル２２ａ、２２ｂの何れを使用するかを決定する。
【００２２】
なお、セット連想マッピング方式については、よく知られた方式であり、ここではその詳細な説明は省略する。また、仮想アドレスと物理アドレスとの変換にはセット連想マッピングを用いることは必須ではなく、例えば、直接マッピング方式や、完全連想マッピング方式などの他のマッピング方式を用いてもよい。活線挿抜を実現する活線挿抜制御装置１３については、その構成や仕組みは従来のものと同等であり、その詳細な手順についての説明は省略する。
【００２３】
図３は、コンピュータシステム１０の動作手順を示している。以下では、コンピュータシステム１０は、初期状態として、図１に示すメモリブロックＡ３０〜Ｃ３２の３つのメモリブロックで運用されており、そのうちのメモリブロックＡ３０に、訂正可能障害等の事由により、システム運用中に動的に抜去する必要が生じている場合を例に挙げて説明する。また、メモリブロックＡ３０を抜去することによって失われるメモリ容量を補うための代替のメモリブロックとして、メモリブロックＤ３３を用いる。
【００２４】
活線挿抜制御装置１３は、オペレータからの指示に基づいて、代替のメモリブロックＤ３３を確保する（ステップＳ１）。このメモリブロックＤ３３の確保では、メモリブロックＤ３３を新たにシステムに組み込む。或いは、メモリブロックＤ３３を事前にシステムに組み込んでおき、メモリブロックＡ３０の代替として確保してもよい。その後、活線挿抜制御装置１３は、演算装置１２に対して、メモリ退避処理の開始を指示する（ステップＳ２）。
【００２５】
メモリ退避処理のプログラムは、実際にデータを移動させるためのプログラム部分と、演算装置１２をアイドル状態に分岐するためのプログラム部分とに分かれており、活線挿抜制御装置１３は、複数の演算装置１２のうちの何れかに、例えば演算装置１２ａに、データ移動のプログラム部分の実行を指示する。このデータ移動プログラム部分の実行を指示された演算装置１２ａを主プロセッサと表現する。また、残りの演算装置１２、すなわち演算装置１２ｂ〜１２ｄには、アイドル状態に分岐するためのプログラム部分の実行を指示する。以下では、これら演算装置１２ｂ〜１２ｄを、従プロセッサと表現する。
【００２６】
ここで、抜去対象のメモリブロックＡ３０には、システム上コアとなる記憶領域（以下、コア領域とも呼ぶ）が存在する可能性がある。コア領域には、演算装置１２自身を動作させるファームウェアを含む制御記憶や、システム共通で使用される記憶領域等が含まれる。通常、プロセッサ内に専用の制御記憶を持たずに、主記憶にファームウェアを展開する方式のマイクロプロセッサを有するコンピュータシステムでは、抜去対象のメモリブロック中にファームウェアや、活線挿抜を制御するプログラムが存在すると、活線挿抜を実行することができない。本実施形態では、アドレス変換機構を利用して、この問題を解決する。
【００２７】
主プロセッサである演算装置１２ａは、割り込み信号線１５を使用して、従プロセッサである演算装置１２ｂ〜１２ｄに、活線挿抜アイドルルーチンに分岐するように指示する（ステップＳ３）。演算装置１２ｂ〜１２ｄは、その指示に従って、それぞれアイドルルーチンへ分岐する（ステップＳ２１）。演算装置１２ａは、現在参照しているページテーブル２２ａ（図２）の物理ページアドレス部分から、抜去対象のメモリブロックＡ３０を指し示すビットフィールドを有するエントリを抜き出し、代替として使用するメモリブロックＤ３３を指し示すビットフィールドに書き換えたページテーブル２２ｂを作成する（ステップＳ４）。このページテーブル２２ｂは、抜去対象のメモリブロックＡ３０以外の物理メモリ空間に作成される。
【００２８】
図４は、ページテーブルの作成の様子を示している。この例では、タグ部は４ビット、ページアドレス部は８ビットで構成されている。また、ページアドレス部の上位２ビットは、アクセス先のメモリブロックに対応した値となっている。例えば、ページアドレスの上位２ビット“００”は、アクセス先がメモリブロックＡ３０であることを示している。ステップＳ４では、演算装置１２ａは、まず、ページテーブル２２ａの各エントリのうちで、ページアドレスの上位２ビットが“００”のエントリを検索する。図４（ａ）では、タグが“００００”のエントリと“０００１”のエントリとが検索される。次いで、検索されたエントリのページアドレスの先頭の２ビットを、メモリブロックＤ３３を指し示す“１１”に書き換える。これにより、同図（ｂ）に示す、ページアドレス部分が書換えられたページテーブル２２ｂが作成される。
【００２９】
図３に戻り、演算装置１２ａは、参照しているページテーブル２２ａの未使用エントリに、代替のメモリブロックＤ３３をマッピングする（ステップＳ５）。このマッピングの様子を図５に示す。同図（ａ）は、マッピング前のページテーブル２２ａを示しており、図４（ａ）と同様に、タグ“００００”と、タグ“０００１”との２つのエントリが、メモリブロックＡ３０を指し示すページアドレスを有している。この場合、ステップＳ５では、メモリブロックＡ３０を指し示すページアドレスをコピーした上で、上位２ビットを、メモリブロックＤ３３を指し示す“１１”に書き換え、同図（ｂ）に示すように、これに新たなタグ“０１１０”、“０１１１”を割り当てて、ページテーブル２２ａに新たなエントリを追加する。
【００３０】
演算装置１２ａは、ページテーブル２２ａにメモリブロックＤ３３をマッピングすると、抜去対象のメモリブロックＡ３０の内容（データ）を、代替のメモリブロックＤ３３にコピーする（ステップＳ６）。このコピーに際しては、演算装置１２ａは、ステップＳ５でマッピングしたページテーブル２２ａ（図５（ｂ））を参照して、メモリブロックＤ３３の物理アドレスにアクセスする。データのコピーには、演算装置１２ａのロード／ストア命令や、ＤＭＡ機能を使用する。このとき、活線挿抜を制御するプログラムコードが抜去されるメモリブロックＡ３０上にあった場合には、代替のメモリブロックＤ３３の先頭から数えて等しい相対アドレスの位置に、活線挿抜のプログラムコード自体もコピーされることになる。
【００３１】
演算装置１２ａは、従プロセッサである演算装置１２ｂ〜１２ｄに対し、使用するページテーブルを、ステップＳ４で作成したページテーブル２２ｂ（図４（ｂ））に切り替えるように指示する（ステップＳ７）。この指示を受けた演算装置１２ｂ〜１２ｄは、指示に従って、それぞれページテーブルポインタ２３の値を変更して、使用中ページテーブルを、ページテーブル２２ａ（図４（ａ））からページテーブル２２ｂ（図４（ｂ））に切り替える（ステップＳ２２）。これにより、切替え前にメモリブロックＡ３０にアクセスしていた仮想アドレスは、代替のメモリブロックＤ３３にアクセスする仮想アドレスとなる。
【００３２】
演算装置１２ｂ〜１２ｄがステップＳ２１で分岐したアイドルルーチンが、抜去対象のメモリブロックＡ３０に存在する場合には、使用するページテーブルを切り替えることにより、アイドルルーチンそのものの物理アドレス空間がメモリブロックＡ３０からメモリブロックＤ３３へ切り替わることになり、演算装置１２ｂ〜１２ｄは、一斉に代替のメモリブロックＤ３３上のアイドルルーチンに分岐する（ステップＳ２３）。しかし、活線挿抜プログラムのアイドルルーチンは、メモリブロックＡ３０とメモリブロックＤ３３とで等しい相対アドレスの位置にコピーされているため、演算装置１２ｂ〜１２ｄが誤動作することはない。
【００３３】
演算装置１２ａは、自身のページテーブルポインタ２３の値を変更して、使用中ページテーブルを、ページテーブル２２ａ（図５（ｂ））からページテーブル２２ｂ（図４（ｂ））に切り替える（ステップＳ８）。これにより、演算装置１２ａは、メモリブロックＤ３３上の活線挿抜プログラムに分岐する（ステップＳ９）。この段階で、メモリブロックＡ３０は、ソフトウェア的にシステムから切り離された状態となる。
【００３４】
演算装置１２ａは、割り込み信号線１５を用いて、他の演算装置１２ｂ〜１２ｄに、アイドルルーチンから抜けて通常処理に復帰するように指示する（ステップＳ１０）。演算装置１２ｂ〜１２ｄは、この指示に従って、通常処理に復帰する（ステップＳ２４）。演算装置１２ａは、活線挿抜制御装置１３に、メモリブロックＡ３０が切り離し可能となったことを通知し、自らも通常処理に復帰する（ステップＳ１１）。その後、活線挿抜制御装置１３は、メモリブロックＡ３０を、活線挿抜によってシステムから物理的に切り離す（ステップＳ１２）。
【００３５】
本実施形態では、抜去対象のメモリブロックのデータを代替のメモリブロックにコピーし、アドレス変換に使用するページテーブルを、抜去対象のメモリブロックを参照するページアドレスから、代替のメモリブロックを参照するページアドレスに書き換えたページテーブルに切り替える。このようにすることで、抜去対象のメモリブロックを参照先とする仮想アドレスを用いて、代替のメモリブロックにアクセスすることができ、抜去対象もメモリブロック上にシステム上コアとなるメモリ領域が存在する場合でも、そのメモリブロックをシステム運用中に抜去することができる。
【００３６】
また、本発明では、コアメモリ領域の移動に際して、演算装置１２が有するアドレス変換機構と、プロセッサ間通信（割り込み機能）とを使用している。このように、本実施形態では、メモリ移動のための専用のハードウェアは必要なく、安価な構成で、コアメモリ領域の移動が実現できる。本実施形態では、演算装置１２によりデータの移動を行うため、メモリの移動開始時期を、演算装置１２上のソフトウェアが意図したタイミングで実行可能である。従って、メモリの移動を専用のハードウェアで実現した場合と異なり、移動処理によるメモリバスの高負荷状態を、システム的な検知から予見してスケジューリングすることができる。
【００３７】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明のコンピュータシステム、データ退避方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施形態のコンピュータシステムの構成を示すブロック図。
【図２】アドレス変換機構を用いたメモリアクセスの様子を示すブロック図。
【図３】コンピュータシステムの動作手順を示すフローチャート。
【図４】（ａ）は、使用中のページテーブルを示す図、（ｂ）は、代替となるメモリブロックへ置換した後のページテーブルを示す図。
【図５】（ａ）は、代替となるメモリブロックのマッピング前のページテーブルを示す図、（ｂ）は、マッピング後のページテーブルを示す図。
【符号の説明】
【００３９】
１０：コンピュータシステム
１１：記憶装置
１２：演算装置（プロセッサ）
１３：活線挿抜制御装置
１４：メモリバス
１５：割り込み信号線
３０〜３３：メモリブロック
【図１】
2007264976.tif 000003
【図２】
2007264976.tif 000004
【図３】
2007264976.tif 000005
【図４】
2007264976.tif 000006
【図５】
2007264976.tif 000007