(57)【要約】【課題】計算機システムにおいて、主記憶装置内のある記憶領域を他の記憶領域に割り当てる際は、予備の未使用記憶領域が存在していることが前提であり、また移動方向は単方向のみであった。さらに、記憶領域の全データの転送が完了しなければ、該記憶領域へのアクセスができなかった。【解決手段】浮動アドレスレジスタ方式に、記憶領域の割り当て先のアドレスレジスタを複数備え、記憶領域内のブロック毎にデータを移動し、ブロックの移動後の領域へのアクセスは、割り当て先のアドレスレジスタで示される記憶の領域へアクセスし、ブロック移動前の領域へのアクセスは、浮動アドレスレジスタで示される記憶領域をそのままアクセスする。記憶領域の内容を双方向に、または任意の方向に移動する動作のため、予備の未使用記憶領域が存在しなくても良く、全データの転送が完了する前でもアクセスが可能となる。【選択図】図１ａ
2006190120.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令処理装置と、複数の記憶領域から構成される主記憶装置と、前記記憶領域の番号を保持する複数の浮動アドレスレジスタからなる浮動アドレスレジスタ群を持つ計算機システムにおいて、前記命令処理装置は、浮動アドレスレジスタ番号と記憶領域内ブロックアドレスを含む絶対アドレスを発行して前記主記憶装置をアクセスし、前記記憶領域を示す記憶領域番号と記憶領域内ブロックを含む複数の宛先アドレスレジスタと、前記浮動アドレスレジスタ群より出力された記憶領域番号と前記各宛先アドレスレジスタの記憶領域番号を比較する複数の比較器１と、前記絶対アドレスのブロックアドレスと前記各宛先アドレスレジスタのブロックアドレスを比較する複数の比較器２と、前記比較器１と前記比較器２の結果により該記憶領域番号を選択するセレクタを有し、前記絶対アドレスに対応する記憶領域への書込み、または、読み出しデータを、前記浮動アドレスレジスタ群より出力された記憶領域番号と前記宛先アドレスレジスタの記憶領域番号と比較し等しい、かつ、前記各宛先アドレスのブロックアドレスより前記絶対アドレスのブロックが小さいか、同じとなる宛先アドレスレジスタがあるときには、前記宛先アドレスレジスタの記憶領域番号に対応する記憶領域からのアクセスを選択し、前記浮動アドレスレジスタ群より出力された記憶領域番号と前記各宛先アドレスレジスタの記憶領域番号と比較し等しくない、または、前記各宛先アドレスレジスタのブロックアドレスより前記絶対アドレスのブロックアドレスが大きいときには、前記浮動アドレスレジスタ群より出力された記憶領域番号に対応する記憶領域からアクセスすることを選択する手段を備えていることを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム及びその主記憶制御方式に関する。
【背景技術】
【０００２】
計算機システムでは、主記憶は一般に複数の記憶装置から構成されている。ここで記憶装置とは、例えば半導体記憶素子を実装した一枚のボードのように独立して取付け／取外しが可能な主記憶の部分である。この記憶装置による主記憶の構成を柔軟にし、構成変更を容易にする代表的方法として、浮動アドレスレジスタ方式がある。プログラムが用いる絶対アドレスで示された主記憶アドレス（以後、絶対アドレスと呼ぶ）と、記憶装置内の物理的な位置（以後、物理アドレスと呼ぶ）との間に複数の浮動アドレスレジスタから構成されるレジスタ群による変換を定義し、浮動アドレスレジスタの設定によって任意の絶対アドレスに任意の物理アドレスを割り当てることを可能とする方式である。以後、絶対アドレスにおけるこの浮動アドレスレジスタ管理単位を記憶領域と呼ぶこととする。
【０００３】
次に図９ａ、図９ｂ及び図９ｃを用いて従来の浮動アドレスレジスタ方式を説明する。浮動アドレスレジスタ方式にかかわるハードウエアは、ある一定容量の記憶領域の集合である主記憶装置(９００)、ラッチＡ(９２０)、Ｂ(９２１)、セレクタ１(９３０)と浮動アドレスレジスタ群(９１０)で構成される。ラッチＡ(９２０)は計算機上のプログラムが使用する絶対アドレスが指定され、浮動アドレスレジスタ群(９１０)内の浮動アドレスレジスタを示す浮動アドレスレジスタ番号と記憶領域内のブロックを示すブロックアドレスで構成される。浮動アドレスレジスタ群(９１０)は主記憶装置(９００)内の記憶領域番号と該浮動アドレスレジスタが有効であるかの情報を保持する浮動アドレスレジスタの集合体である。主記憶装置(９００)は一定容量の記憶領域の集合体であり、各記憶領域に物理順に番号が割り振られている。セレクタ１(９３０)はラッチＡ(９２０)に指定された浮動アドレスレジスタ番号に対応する浮動アドレスレジスタを、浮動アドレスレジスタ群(９１０)から選択するセレクタである。ラッチＢ(９２１)には、浮動アドレスレジスタ群からセレクタにより選択された浮動アドレスレジスタに設定された記憶領域番号が格納される。
【０００４】
浮動アドレスレジスタ群(９１０)の浮動アドレスレジスタには、計算機システム上で動作するプログラムが記憶領域をどのようにマッピングするかを決定し、あらかじめ値を設定しておく。同時にプログラムは図２に示す様な、主記憶管理情報を作成し、管理する。
【０００５】
計算機システム上で動作しているプログラムが主記憶をアクセスする命令を実行した場合、ラッチＡ(９２０)にアクセスする絶対アドレスが指定される。ラッチＡ(９２０)のアドレスにより浮動アドレスレジスタ群(９１０)からセレクタ１(９３０)により対応する浮動アドレスレジスタが選択され、ラッチＢ(９２１)に格納される。ラッチＢ(９２１)に格納された浮動アドレスレジスタの記憶領域番号に対応する記憶領域の、ラッチＡ(９２０)に指定されたブロックアドレスの示す該ブロックからデータが読み出されるか、あるいは、該ブロックにデータが書込まれる。
【０００６】
浮動アドレスレジスタ方式の利点は、プログラムが使用する絶対アドレスはそのままで、絶対アドレスに対応する記憶領域を容易に変更することができる点である。以下に、図２ａ、図２ｂ、図１０ａ、図１０ｂ及び図１０ｃを用いて、記憶領域をある記憶領域へ変更する手順例を説明する。図２ａは絶対アドレス空間、浮動アドレスレジスタと物理アドレス空間の関係を表したものである。ここで絶対アドレス空間３０００００(記憶領域３)を他の記憶領域に割り当てる例を説明する。第１ステップとして、主記憶管理情報(図２ａ)に基き物理アドレス空間を低位アドレスから未使用領域があるか検索する。第２ステップとして、未使用領域がない場合は処理を終了する。ある場合は、第３ステップに進む。図２ａでは、物理アドレス空間５０００００(記憶領域５)が最も低位である。第３ステップとして、全ての主記憶アクセスを禁止する。第４ステップとして、絶対アドレス空間の最もアドレスが低位である未使用領域に対応する浮動アドレスレジスタに、ステップ1で検索した未使用領域の物理アドレスを格納し、Ｖビットを１にする(図１０ｂ)。第５ステップとして、絶対アドレス空間３０００００から第４ステップで割り当てた絶対アドレス空間５０００００にデータを転送する。第６ステップとして、第４ステップの浮動アドレスレジスタ(絶対アドレス空間５０００００に対応)のＶビットと物理アドレス空間を０とする。第７ステップとして、絶対アドレス空間３０００００に対応する浮動アドレスレジスタに格納されている物理アドレスを、第１ステップで検索した物理アドレスに変更する(図１０ｃ)。さらに、主記憶管理情報の物理アドレス３０００００と５０００００の欄を更新する(図２ｂ)。第８ステップとして、全ての主記憶へのアクセスを許可する。以上で浮動アドレスレジスタ３に対応する記憶領域３が記憶領域５に変更されるが、絶対アドレス空間上は記憶領域の変更以前と変わらない。
上記に示す通り、現行の浮動アドレスレジスタ方式では、動的再構成機能により記憶領域単位にデータを移動する場合は、該当する記憶領域すべてに対するアクセスを抑止したうえ、予備記憶領域への単方向の移動しかできない。
【０００７】
ところで、単一の物理計算機上で複数のオペレーティングシステム(以後、ゲストＯＳと呼ぶ)を動作させる技術として、ハイパバイザと呼ばれる制御プログラムにより、複数の区分(パーティション)と呼ばれる分割された計算機システム環境で複数のゲストＯＳを独立に動作させる論理計算機(ＬＰＡＲ Ｌogical ＰＡＲtition、以後ＬＰＡＲと呼ぶ)がよく知られている。各ＬＰＡＲは、物理計算機の資源の一部を占有または共有する。例えば、各ＬＰＡＲは、主記憶装置、および拡張記憶を排他的に占有し、命令処理装置、および入出力装置を排他的あるいは他ＬＰＡＲと共有して使用する。
【０００８】
企業情報システムの中核を担う計算機システムにおいて、安定稼動は絶対条件であり、冗長構成、稼動時保守機能といったノンストップ指向技術で高い信頼性、可用性が要求されている。
【０００９】
計算機システムにおいて、発生した障害の種別により、その復旧動作は異なる。例えば一時的な訂正可能障害の場合、即座に該障害部位を交換するか、該障害部位を切り離すか、該障害部位を他の部位に割り当てるか、あるいはそのままシステム運用を続行するかなどの選択が求められる。２４時間の運転が求められるオンライン業務など性能面から見て優先しなければならないＬＰＡＲの場合、訂正可能障害の頻度によっては、該障害部位を他の部位に動的に割り当て、未然に固定障害を回避することが望まれる。
【００１０】
発生した障害の種別により、計算機システムの構成を、動的に変更する方法として、特開２００３−１１４８１１がある。特開２００３−１１４８１１では、パーティションを構成している物理資源を自動的に代替資源と交代することができるが、パーティションのオペレーティングシステムが動的再構成機能を有していることが、前提条件となっており、また交代可能な代替資源は、予備資源に限定されている。
【００１１】
前記浮動アドレスレジスタ方式を例にとると、主記憶装置内のある記憶領域で訂正可能障害が発生した場合、該記憶領域を他の記憶領域に変更するために、該記憶領域のデータを他の記憶領域内に移動するには、前記浮動アドレスレジスタ方式のところで説明している通り、オペレーティングシステムが主記憶装置の動的再構成機能を有していることが前提であり、論理計算機システムの場合、ゲストオペレーティングシステムが主記憶装置の動的再構成機能を有していることが前提であった。
【００１２】
さらに、従来の主記憶装置の動的再構成は、記憶領域の変更を単方向のデータ移動で行なうため、未使用の予備記憶領域が存在していることが必須条件であった。
【００１３】
【特許文献１】特開２００３−１１４８１１
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の第１の目的は、記憶領域のデータ移動中に、該記憶領域へのアクセスを可能とする、記憶領域へのアクセス方法を提供することである。本発明の第２の目的は、データをブロック単位で双方向に、あるいは任意の方向に入れ替える記憶領域のデータ移動方法を提供することである。本発明の第３の目的は、論理計算機システムにおける記憶領域のデータ移動を、ゲストオペレーティングシステムが動的再構成機能をサポートしていなくても実現可能とすることである。本発明の第４の目的は、論理計算機システムにおいて、あるＬＰＡＲに割り当てられている記憶領域に訂正可能障害が頻繁に発生した場合に、ハイパバイザが障害情報に基き、予備記憶領域がなくても他の記憶領域に入れ替える手段を提供することである。
【課題を解決するための手段】
【００１５】
前記課題を解決するために、複数の宛先アドレスレジスタと浮動アドレスレジスタ群より出力された記憶領域番号と各宛先アドレスレジスタの記憶領域番号を比較する比較器１と、絶対アドレスのブロックアドレスと各宛先アドレスレジスタのブロックアドレスを比較する比較器２と、比較器１と比較器２の結果により該記憶領域番号を選択するセレクタを有し、絶対アドレスに対応する記憶領域の書込み、または、読み出しデータを、浮動アドレスレジスタ群より出力された記憶領域番号と宛先アドレスレジスタの記憶領域番号と比較し等しい、かつ、宛先アドレスレジスタのブロックアドレスより絶対アドレスのブロックアドレスが小さいか、同じとなる宛先アドレスレジスタがあるときには、宛先アドレスレジスタの記憶領域番号に対応する記憶領域からのアクセスを選択し、浮動アドレスレジスタ群より出力された記憶領域番号と各宛先アドレスレジスタの記憶領域番号と比較し等しくない、または、各宛先アドレスレジスタのブロックアドレスより絶対アドレスのブロックアドレスが大きいときには、浮動アドレスレジスタ群より出力された記憶領域番号に対応する記憶領域からアクセスすることを選択する手段と、複数の記憶領域のデータを移動するとき、記憶領域内のブロック単位の移動と次のブロック単位の移動をする間に任意の間隔を空ける手段を備えることで、該記憶領域を他の記憶領域に割り当てる動作中でも該記憶領域へのアクセスを可能とし、さらに、各宛先アドレスレジスタにデータ移動後の記憶領域に対応する記憶領域番号とブロックアドレスを設定することにより、同時に異なる記憶領域を他の記憶領域に割り当てることを可能とするものである。
【００１６】
また、論理計算機システムにおいて、各論理区画を管理・制御するハイパバイザが、絶対アドレスの浮動アドレスレジスタ番号と主記憶上の記憶領域番号と論理区画番号を対応付けした主記憶管理情報を持ち、主記憶管理情報に基き任意に記憶領域のデータを移動することで、ゲストオペレーティングシステムが動的再構成機能をサポートしていなくても、記憶領域のデータ移動を可能にするものである。さらに、論理区画優先順位情報をあらかじめ設定する手段と、論理区画に割り当てられた記憶領域の訂正可能障害情報を通知する手段と、通知された障害情報をハイパバイザ内に記憶保持する手段を持ち、前記障害情報に基き、ハイパバイザが任意に記憶領域のデータを移動することを備えることで、予備記憶領域がなくても他の記憶領域に入れ替えることを可能とするものである。
【発明の効果】
【００１７】
本発明によれば、複数の宛先アドレスレジスタを持ち、宛先アドレスレジスタにデータ移動先の記憶領域番号とブロックアドレスを設定することで、複数の記憶領域のデータをブロック単位で双方向に、あるいは任意の方向に移動することができる。また本発明によれば、複数の記憶領域のデータを移動するとき、記憶領域内のブロック単位の移動と次のブロック単位の移動をする間に任意の間隔を空ける手段を備え、さらに、記憶領域のブロックに対するアクセスをすでに移動済みブロックの場合、移動後の記憶領域をアクセスし、移動前のブロックの場合、移動前の記憶領域にアクセスすることで、記憶領域の全データの転送が完了していなくても、該記憶領域へのアクセスを可能とすることができる。また本発明によれば、論理計算機システムにおいて、浮動アドレスレジスタ番号と主記憶上の記憶装置番号と論理区画番号を対応付けした主記憶管理情報を持ち、主記憶管理情報に基き任意に記憶領域のデータを移動することで、ゲストオペレーティングシステムが動的再構成機能をサポートしていなくても、記憶領域のデータ移動が実現できる。また本発明によれば、記憶領域の内容を双方向に、または任意の方向にデータを移動する動作であるため、予備の未使用記憶領域が存在していなくても、主記憶の再構成が可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明の実施例を詳細に説明する。
【実施例１】
【００１９】
本発明の一実施例を図１から図５を用いて説明する。
【００２０】
図１ａ及び図１ｂに本発明の実施例を示す。本発明は、従来の浮動アドレスレジスタ方式(図９)に加え、ラッチＣ(１４０)、宛先アドレスレジスタ１(１５０)，２(１６０)，，ｎ(１７０)、セレクタ２(１３１)、比較器１(１５１)，２(１５２)，３(１６１)，４(１６２)，，ｍ、ＡＮＤ装置１(１５３)，２(１６３)，，ｎで構成される。宛先アドレスレジスタは、２つを一組として、ある記憶領域のデータをある記憶領域に移動する際のアドレスとして使用し、記憶領域番号と記憶領域のどこまでデータを転送したかを示すブロックアドレスにより構成される。比較器１(１５１)，３(１６１)は、浮動アドレスレジスタ群(９１０)から選択された浮動アドレスレジスタ内の記憶領域番号と宛先アドレスを比較するために用意されている。比較器２(１５２)，４(１６２)は、宛先アドレスレジスタのブロックとラッチＡ(９２０)のブロックを比較するために用意されている。比較器１(１５１)と２(１５２)がＡＮＤ装置１(１５３)に接続され、比較器３(１６１)，４(１６２)がＡＮＤ装置２(１６３)に接続される。浮動アドレスレジスタ群(９１０)とラッチＢ(９２１)の間に、ＡＮＤ装置の出力により浮動アドレスレジスタの記憶領域番号か、または、宛先アドレスレジスタの記憶領域番号かを選択するセレクタ２(１３１)が用意されている。ラッチＣ(１４０)は、宛先アドレスレジスタが有効であるかを示しており、有効であれば１、無効であれば０をＡＮＤ装置に出力することで、ＡＮＤ装置の出力を制御するために用意される。
【００２１】
記憶領域へのアクセス(記憶領域からの読み出し、あるいは、記憶領域への書込み)を、記憶領域間のデータ移動中でないときのアクセス、記憶領域間のデータ移動中で該記憶領域以外へのアクセス、記憶領域間のデータ移動中で該記憶領域へのアクセスに分けて説明する。ここでは説明を簡単にするため、宛先アドレスレジスタを一組２個として説明する。
【００２２】
記憶領域間のデータ移動中でないときのアクセスは以下のように行なう。計算機システム上で動作しているプログラムが記憶領域をアクセスする命令を実行することにより、ラッチＡ(９２０)に絶対アドレスが設定される。絶対アドレスにより導かれる浮動アドレスレジスタ番号に対応する浮動アドレスレジスタが浮動アドレスレジスタ郡(９１０)内からセレクタ１(９３０)により選択される。浮動アドレスレジスタ群(９１０)から選択された浮動アドレスレジスタ内の記憶領域番号がセレクタ２(１３１)と比較器１(１５１)，３(１６１)に送られ、比較される。比較器２(１５２)，比較器４(１６２)では、ラッチＡ(９２０)のブロックと宛先アドレスレジスタのブロックが、それぞれ比較される。ＡＮＤ装置１(１５３)，２(１６３)には、それぞれ比較器１(１５１)，２(１５２)と比較器３(１６１)，４(１６２)が接続され、ＡＮＤ装置の有効ビットであるラッチＣ(１４０)が接続される。記憶領域間のデータ移動中ではないので、ラッチＣ(１４０)から０が出力されるためＡＮＤ装置からセレクタ２(１３１)へは常に０が出力される。セレクタ２(１３１)では常に浮動アドレスレジスタの記憶領域番号がラッチＢ(９２１)に出力される。以上により、ラッチＡ(９２０)に対応する記憶領域がアクセスされる。
【００２３】
次に、記憶領域間でデータ移動中の該記憶領域以外へのアクセスは以下のように行なう。浮動アドレスレジスタの記憶領域番号がセレクタ２(１３１)と比較器１(１５１)，３(１６１)に送られ、比較される。比較器２(１５２)，比較器４(１６２)では、ラッチＡ(９２０)のブロックと宛先アドレスレジスタのブロックが、それぞれ比較される。ここまでは、前記の記憶領域間のデータ移動中でないときのアクセスと同じである。記憶領域間のデータ移動中のため、ラッチＣ(１４０)から割り当て動作中の宛先アドレスレジスタに対応するＡＮＤ装置に１が出力される。比較器１(１５１)，３(１６１)では、浮動アドレスレジスタの記憶領域番号と宛先アドレスレジスタの記憶領域番号が比較されるが、該記憶領域以外へのアクセスであるため、比較器からは０が出力される。ＡＮＤ装置からは０がセレクタ２(１３１)へ出力される。セレクタ２(１３１)では常に浮動アドレスレジスタの記憶領域番号がラッチＢ(９２１)に出力される。以上により、ラッチＡ(９２０)に対応する記憶領域がアクセスされる。
【００２４】
次に、記憶領域間のデータ移動中の該記憶領域へのアクセスは以下のように行なう。ここでは宛先アドレスレジスタ１(１５０)と２(１６０)に設定されている記憶領域番号の記憶領域がデータ移動中であり、宛先アドレスレジスタ１(１５０)に設定された記憶領域へのアクセスであるとする。浮動アドレスレジスタの記憶領域番号がセレクタ２(１３１)と比較器１(１５１)，３(１６１)に送られ、比較される。比較器２(１５２)，比較器４(１６２)では、ラッチＡ(９２０)のブロックと宛先アドレスレジスタのブロックが、それぞれ比較される。記憶領域間のデータ移動中のため、ラッチＣ(１４０)から記憶領域間のデータ移動中の宛先アドレスレジスタ１(１５０)と２(１６０)に対応するＡＮＤ装置１(１５３)と２(１６３)に１が出力される。ここまでは、前記の記憶領域間のデータ移動中の該記憶領域以外へのアクセスと同じである。比較器１(１５１)では、浮動アドレスレジスタの記憶領域番号と宛先アドレスレジスタ１(１５０)の記憶領域番号が比較され、該記憶領域へのアクセスであるため一致し、比較器１(１５１)からは１が出力される。比較器３(１６１)からは記憶領域番号が一致しないので０が出力される。比較器２(１５２)，４(１６２)では、ラッチＡ(９２０)と宛先アドレスレジスタのブロックアドレスが比較され、ラッチＡ(９２０)のブロックアドレスが等しいか、小さいならば１が出力され、大きいならば０が出力される。このときＡＮＤ装置１(１５３)の出力は、ラッチＣ(１４０)、比較器１(１５１)から共に１が出力されているので、比較器２(１５２)の出力に依存することとなる。セレクタ２(１３１)は、図３に従いラッチＢ(１２１)へ出力する。この場合、セレクタ２(１３１)は、ラッチＡ(９２０)のブロックアドレスの方が宛先アドレスレジスタのブロックよりも大きいときは、ラッチＢ(９２１)に浮動アドレスレジスタの記憶領域番号が出力され、等しいか小さいときは宛先アドレスレジスタ２(１６０)の記憶領域番号が出力される。以上により、ラッチＡ(９２０)と宛先アドレスレジスタのブロックアドレスの関係により、浮動アドレスレジスタの示す記憶領域のアクセスか、あるいは、宛先アドレスレジスタ１(１５０)の示す記憶領域に対するアクセスが、宛先アドレスレジスタ２(１６０)の示す記憶領域へのアクセスになり、宛先アドレスレジスタ２(１６０)の示す記憶領域に対するアクセスが、宛先アドレスレジスタ１(１５０)の示す記憶領域へのアクセスになる。
【００２５】
以上、宛先アドレスレジスタが一組２個のケースを説明してきたが、宛先アドレスレジスタが二組以上に追加してもセレクタ２(１３１)の出力を図３のようにすることで対応可能である。例えば、宛先アドレスレジスタ３、４を追加した場合を簡単に説明する。絶対アドレスによるアクセスが宛先アドレスレジスタ１から４内の記憶領域以外のときは、絶対アドレスに対応する浮動アドレスレジスタの記憶領域にアクセスする。宛先アドレスレジスタ３の記憶領域に対するアクセスの場合は、絶対アドレスのブロックアドレスが宛先アドレスレジスタ３のブロックアドレスと等しいか、小さいときには、宛先アドレスレジスタ４の記憶領域にアクセスする。また、宛先アドレスレジスタ３のブロックアドレスよりも大きいときは浮動アドレスレジスタの記憶領域にアクセスを行なう。宛先アドレスレジスタ４の記憶領域に対するアクセスの場合で、絶対アドレスのブロックアドレスが宛先アドレスレジスタ４のブロックアドレスと等しいか、小さいときには、宛先アドレスレジスタ３の記憶領域にアクセスする。また、宛先アドレスレジスタ４のブロックアドレスよりも大きいときは浮動アドレスレジスタの記憶領域にアクセスを行なう。
【実施例２】
【００２６】
次に、図１ａ、図１ｂ、図２ａ、図２ｃ、図４及び図５を用いて、本発明を適用した場合の双方向にデータ移動する手順例を説明する。図２ａ、図２ｃは絶対アドレス空間と物理アドレス空間の関係を表した主記憶管理情報である。図４は、記憶領域間のデータ移動手順をフロー図にしたものである。図５は、本実施例における浮動アドレスレジスタの変移を表したものである。
【００２７】
第４１ステップとして、主記憶管理情報(図２ａ)をもとに各データ移動先記憶領域を決定する。例えば、絶対アドレス空間２０００００（記憶領域番号２）と絶対アドレス空間４０００００（記憶領域番号４）を双方向にデータ移動することにする。第４２ステップとして、本動作を実行している命令処理装置以外からのアクセスを禁止する。第４３ステップとして、各データ移動先に対応する絶対アドレス（絶対アドレス空間２０００００と４０００００）のブロックを読み出す。第４４ステップとして、宛先アドレスレジスタ１(１５０)と２(１６０)それぞれにデータ移動先の記憶領域番号、ブロックアドレスを設定する。本実施例では、宛先アドレスレジスタ１にデータ移動先の記憶領域番号２を、宛先アドレスレジスタ２にデータ移動先の記憶領域番号４を設定する。第４５ステップとして、ラッチＣ(１４０)の宛先アドレスレジスタ１(１５０)、２(１６０)有効ビットを１に設定する。第４６ステップとして、第４３ステップで読み出した両ブロックデータを、データ移動先に対応する絶対アドレスのブロックに書込む（絶対アドレス空間２０００００から読み出したデータは、絶対アドレス空間２０００００に書込む。また、絶対アドレス空間４０００００から読み出したデータは、絶対アドレス空間４０００００に書込む。）。このときデータ移動先(宛先アドレスレジスタ１)のデータはデータ移動先(宛先アドレスレジスタ２)の記憶領域４に書込まれ、データ移動先(宛先アドレスレジスタ２)のデータはデータ移動元(宛先アドレスレジスタ１)の記憶領域２に書込まれる。第４７ステップとして、第４２ステップで禁止した他の命令処理装置からのアクセスを許可する。第４８ステップとして、記憶領域の最後のブロックまでデータ移動が完了しているか調べる。完了していたならば、第４１０ステップに進む。完了していなければ第４９ステップに進む。第４９ステップとしてブロックアドレスを次のブロックアドレスにして、第４２ステップに戻る。第４１０ステップとして、対応する浮動アドレスレジスタの記憶領域を変更する(図５)。さらに、主記憶管理情報を更新する(図２ｃ)。第４１１ステップとして、ラッチＣ(１４０)の宛先アドレスレジスタ１、２有効ビットを０に設定し、処理を完了する。以上の手順で、双方向のデータ移動処理中以外は、アクセス可能な状態で記憶領域間のデータ移動が可能となる。
【００２８】
従来は記憶領域間のデータ移動動作中のときは該記憶領域すべてでアクセスすることができなかったが、本実施例によれば、記憶領域のアクセス禁止は記憶領域内のブロックのデータ移動時のみとなる。記憶領域内のブロック単位の移動と次のブロック単位の移動をする間（上記手順の第４７ステップから第４２ステップまでの間）に、該記憶領域のアクセスが可能になり、また前記の間隔は、システム構成に依存して任意の値とすることが可能である。以上、双方向にデータを移動する手順例のケースを説明してきたが、単方向に、または任意の複数の方向にデータ移動することも可能である。
【００２９】
単方向にデータを移動するケースについて簡単に説明する。宛先アドレスレジスタ１(１５０)、２(１６０)に移動したい記憶領域の番号を設定する。宛先アドレスレジスタ１(１５０)から宛先アドレスレジスタ２(１６０)の記憶領域にデータ移動したいときは、ラッチＣ(１４０)の宛先アドレスレジスタ１有効ビットを１にして、宛先アドレスレジスタ２有効ビットを０にする。双方向のデータ移動とは違い、宛先アドレスレジスタ１に対応する絶対アドレスからのみブロックを読み出し、書込む。また、宛先アドレスレジスタ２(１６０)から宛先アドレスレジスタ１(１５０)の記憶領域にデータ移動したいときは、ラッチＣ(１４０)の宛先アドレスレジスタ１有効ビットを０にして、宛先アドレスレジスタ２有効ビットを１にする。アドレスレジスタ２に対応する絶対アドレスからのみブロックを読み出し、書込むことで単方向のデータ移動が可能となる。
【００３０】
任意の複数方向にデータ移動をするケースについても簡単に説明する。ここではある記憶領域から二つの記憶領域にデータを移動するケースを説明する。データ移動元の記憶領域番号を宛先アドレスレジスタ１と３に設定し、データを移動する先の記憶領域番号を宛先アドレスレジスタ２と４にそれぞれ設定する。ラッチＣ(１４０)の宛先アドレスレジスタ１、３有効ビットを１にする。宛先アドレスレジスタ２，４有効ビットは０にする。宛先アドレスレジスタ１に対応する絶対アドレスからのみブロックを読み出し、書込むことで、複数方向へのデータ移動が可能となる。
【実施例３】
【００３１】
本発明を実施した論理計算機システムにおいて、記憶領域のデータ移動を行なう実施例を図６、図８ａ、図８ｂを用いて以下に説明する。図６は、論理計算機システムの概念を示す図である。図８ａ、図８ｂは、絶対アドレス空間と物理アドレス空間の関係とＬＰＡＲへの割り当て状況を表した主記憶管理情報である。
【００３２】
従来は、記憶領域のデータ移動を行なうには、各ＬＰＡＲ上のオペレーティングシステムが主記憶の動的再構成機能を有し、ゲストオペレーティングシステムに対する記憶領域の切離し、接続要求をすることにより、実施しなければならなかった。
【００３３】
図６は、論理計算機システムを示している。計算機システム上の複数の入出力装置、複数の命令処理装置、主記憶装置等で構成される物理資源(６００)を、ハイパバイザ(６４０)と呼ばれる制御プログラムにより、複数のＬＰＡＲに分割する。物理資源(６００)は、障害監視プロセッサ(６１０)により障害の発生状況が監視されている。本実施例ではＬＰＡＲを２台とする。それぞれのＬＰＡＲでは、論理資源として複数の命令処理装置、複数の入出力装置、主記憶装置等を持ち、それぞれオペレーティングシステムが動作する。ハイパバイザ(６４０)は、各ＬＰＡＲから論理資源の使用状況を知る手段(６４１)と各ＬＰＡＲに物理資源の使用状況を通知する手段(６４２)を持っている。また、物理資源(６００)を管理する物理資源管理テーブル(６５０)を持っている。物理資源管理テーブル(６５０)は、ＬＰＡＲ構成情報(６５１)、主記憶管理情報(６５２)で構成される。ＬＰＡＲ構成情報(６５１)は、各ＬＰＡＲの論理命令処理装置数、主記憶容量などの情報で構成される。論理計算機システムにおける主記憶管理情報(６５２)は、図２の情報に加えどのＬＰＡＲに割り当てられているかの情報で構成される(図８ａ)。ハイパバイザ(６４０)はこの物理資源管理テーブル(６５０)に基き、各ＬＰＡＲに物理資源(６００)の割り当てを行なっている。
【００３４】
ここでは、ＬＰＡＲ２(６３０)における、ある記憶領域のデータを他の記憶領域に移動する例を説明する。ＬＰＡＲ２(６３０)に割り当てられている記憶領域２を他の記憶領域に移動する場合は、まず主記憶管理情報（図８ａ）よりＬＰＡＲ２(６３０)に割り当てられている他の記憶領域の中から、移動先の記憶領域番号を決定する。ＬＰＡＲ２(６３０)に割り当てられている記憶領域は１、２、５であり、未使用の記憶領域は５であるので、ここでは記憶領域５に移動することにする。次に単方向の記憶領域間のデータ移動手順により、記憶領域間のデータ移動を行なう。最後に浮動アドレスレジスタ群の該浮動アドレスレジスタと主記憶管理情報(図８ｂ)を更新する。
【００３５】
本実施例によれば、ハイパバイザが絶対アドレスの浮動アドレスレジスタ番号と主記憶上の記憶領域番号とＬＰＡＲ番号を対応付けした主記憶管理情報を持ち、前記実施例を用いることで、ＬＰＡＲ上のオペレーティングシステムが主記憶の動的再構成機能を有していなくても、また、ＬＰＡＲ上のオペレーティングシステムに知られることなく、任意に記憶領域のデータ移動をすることが可能になる。
【実施例４】
【００３６】
本発明を実施した論理計算機システムでは、以下に示す障害回避方法を使用することが可能となる。
【００３７】
従来は、ある記憶領域で訂正可能障害が頻繁に発生した場合、予備の未使用記憶領域がないときは、障害の発生した記憶領域を他の記憶領域に割り当てることができなかった。
【００３８】
実施例３（図６）のハイパバイザに、障害情報を記憶保持する障害情報管理部(７６０)を追加し、物理資源管理テーブル(６５０)にＬＰＡＲ優先情報(７５３)を追加する（図７）。各ＬＰＡＲのオペレーティングシステム上で動作しているプログラムには、業務の重要度により優先順位がある、この優先順位をあらかじめＬＰＡＲ優先情報(７５３)として物理資源管理テーブル(６５０)に設定しておく。本実施例ではＬＰＡＲ１の方がＬＰＡＲ２よりも低位であるとする。
【００３９】
ある記憶領域で訂正可能障害が発生した場合、障害監視プロセッサ(６１０)からハイパバイザ(６４０)に対して記憶領域の障害情報が通知される。例えば記憶領域３で訂正可能障害が発生するとする。通知された障害情報はハイパバイザ内の障害情報記憶部(７６０)に記憶保持され、さらに該記憶領域の訂正可能障害の発生回数が閾値を超えたかチェックされる。閾値とは、ある一定時間中に許容される訂正可能障害の回数である。もし閾値を超えた場合、ハイパバイザは、物理資源管理テーブル(６５０)の主記憶管理情報（６５２・図８ｃ）より、閾値を超えた記憶領域がどのＬＰＡＲに割り当てられていたか調べる。記憶領域３であるので、ＬＰＡＲ２である。主記憶管理情報（図８ｃ）より予備の未使用記憶領域がある場合は、閾値の超えた記憶領域を未使用領域に、単方向の記憶領域間のデータ移動手順により、割り当てる。未使用の記憶領域がない場合は、ＬＰＡＲ優先情報(７５３)に基き低位のＬＰＡＲに割り当てられている記憶領域と、前記実施例に基き入れ替える。ＬＰＡＲ２よりＬＰＡＲ１の方が低位であるので、ＬＰＡＲ１に割り当てられている記憶領域８を双方向の記憶領域間のデータ移動手順により、入れ替える。最後に浮動アドレスレジスタ群の該浮動アドレスレジスタと主記憶管理情報(図８ｄ)を更新する。
【００４０】
本実施例によれば、ある記憶領域で訂正可能障害が頻繁に発生したとき、ＬＰＡＲ優先情報を持ち、優先度の低位ＬＰＡＲに割り当てられている記憶領域と入れ替えることで、予備の未使用記憶領域がなくても記憶領域の入れ替えをすることが可能となり、優先度の高いＬＰＡＲ記憶領域の訂正不能障害を未然に防ぐことが可能となる。
【００４１】
なお、上記実施の形態は以下のように捉えることが可能である。
【００４２】
（１）１つの命令処理装置は、他の命令処理装置からの主記憶装置へのアクセスを一時的に抑止する制御手段をさらに備えることを特徴とする請求項1記載の計算機システム。
【００４３】
（２）前記計算機システムにおいて、１つの命令処理装置が他の命令処理装置からの主記憶装置へのアクセスを抑止するステップと、各宛先アドレスレジスタにデータ移動後の記憶領域に対応する記憶領域番号とブロックアドレスを設定するステップと、複数の記憶領域のデータをブロック単位で双方向に、あるいは任意の方向に移動するステップと、前記主記憶装置へのアクセスを許可するステップを有し、前記複数の記憶領域のデータをブロック単位で移動することを特徴とする記憶領域のデータ移動方法。
【００４４】
（３）前記計算機システムにおいて、複数の記憶領域のデータ移動をするとき、前記記憶領域内のブロック単位の移動と次のブロック単位の移動をする間に任意の間隔を空ける手段を有し、前記間隔の間に前記複数の命令処理装置から前記記憶領域に対応する絶対アドレスが発行されたとき、前記絶対アドレスのブロックアドレスに対応するブロックがすでに移動済みの場合、移動後の記憶領域をアクセスし、前記絶対アドレスのブロックアドレスに対応するブロックがまだ移動していない場合、移動前の記憶領域をアクセスすることにより、前記複数の記憶領域のデータ移動中に該記憶領域へのアクセスを可能とすることを特徴とする記憶領域アクセス方法。
【００４５】
（４）前記計算機システム上で動作するオペレーティングシステムが、前記絶対アドレスの浮動アドレスレジスタ番号と前記主記憶上の記憶領域番号を対応付けした主記憶管理情報を持ち、任意に記憶領域のデータを移動することを可能とする、（１）乃至（３）を備えた、計算機システム。
【００４６】
（５）前記計算機システムに構成される物理計算機資源を論理的に分割することにより複数のＬＰＡＲを生成し、１台以上のオペレーティングシステムを同時に実行可能とする計算機システムにおいて、各ＬＰＡＲを管理・制御するハイパバイザが、前記絶対アドレスの浮動アドレスレジスタ番号と前記主記憶上の記憶領域番号とＬＰＡＲ番号を対応付けした主記憶管理情報を持ち、任意に記憶領域のデータを移動することを可能とする、（１）乃至（３）を備えた、論理計算機システム。
【００４７】
（６）主記憶装置障害を監視する障害監視プロセッサと、ＬＰＡＲに割り当てられた記憶領域で訂正可能障害障害が発生した場合、前記障害監視プロセッサが前記記憶障害の障害情報を前記ハイパバイザに通知する手段と、通知された前記障害情報をハイパバイザ内に記憶保持する手段と、ＬＰＡＲ優先順位情報をあらかじめ設定する手段を持ち、前記障害情報に基き、前記ハイパバイザが任意に記憶領域のデータを移動することを可能とする、ことをさらに備える、（５）記載の論理計算機システム。
【図面の簡単な説明】
【００４８】
【図１ａ】本発明の浮動アドレスレジスタ方式の概念を示す図である。
【図１ｂ】本発明の宛先アドレスレジスタ比較部を示す図である。
【図２ａ】主記憶の割り当て状況を管理するテーブルを表す図である。
【図２ｂ】主記憶の割り当て状況を管理するテーブルを表す図である。
【図２ｃ】主記憶の割り当て状況を管理するテーブルを表す図である。
【図３】本発明のセレクタ２の出力を示した図である。
【図４】本発明の記憶領域間のデータ移動手順を示すフロー図である。
【図５】本発明の浮動アドレスレジスタ方式により、記憶領域が他の記憶領域に割り当てられる過程を示した図である。
【図６】論理計算機システムの概念を示す図である。
【図７】本発明における論理計算機システムの概念を含み、ハイパバイザ構成を示す図である
【図８ａ】主記憶の割り当て状況を管理するテーブルを表す図である。
【図８ｂ】主記憶の割り当て状況を管理するテーブルを表す図である。
【図８ｃ】主記憶の割り当て状況を管理するテーブルを表す図である。
【図８ｄ】主記憶の割り当て状況を管理するテーブルを表す図である。
【図９ａ】従来の浮動アドレスレジスタ方式の概念を示す図である。
【図９ｂ】従来の浮動アドレスレジスタ方式の浮動アドレスレジスタ群を示す図である。
【図９ｃ】従来の浮動アドレスレジスタ方式の主記憶装置を示す図である。
【図１０ａ】従来の浮動アドレスレジスタ方式により、記憶領域が他の記憶領域に割り当てられる過程を示した図である。
【図１０ｂ】従来の浮動アドレスレジスタ方式により、記憶領域が他の記憶領域に割り当てられる過程を示した図である。
【図１０ｃ】従来の浮動アドレスレジスタ方式により、記憶領域が他の記憶領域に割り当てられる過程を示した図である。
【符号の説明】
【００４９】
１３１  セレクタ２
１４０  ラッチ
１５０、１６０、１７０  宛先アドレスレジスタ
１５０１、１６０１  宛先アドレスレジスタ比較部
１５１、１５２、１６１、１６２  比較器
１５３，１６３  ＡＮＤ装置
６００  物理資源
６１０  障害監視プロセッサ
６２０、６３０  ＬＰＡＲ
６４０  ハイパバイザ
６４１  論理資源使用状況通知手段
６４２  物理資源使用状況通知手段
６５０  物理資源管理テーブル
６５１  ＬＰＡＲ構成情報
６５２  主記憶管理情報
７５３  ＬＰＡＲ優先情報
７６０  障害情報記憶部
９００  主記憶装置
９０１、９０２、９０３、９０４  記憶領域
９１０  浮動アドレスレジスタ群
９１１、９１２、９１３、９１４  浮動アドレスレジスタ
９２０、９２１  ラッチ
９３０  セレクタ
【図１ａ】
2006190120.tif 000003
【図１ｂ】
2006190120.tif 000004
【図２ａ】
2006190120.tif 000005
【図２ｂ】
2006190120.tif 000006
【図２ｃ】
2006190120.tif 000007
【図３】
2006190120.tif 000008
【図４】
2006190120.tif 000009
【図５】
2006190120.tif 000010
【図６】
2006190120.tif 000011
【図７】
2006190120.tif 000012
【図８ａ】
2006190120.tif 000013
【図８ｂ】
2006190120.tif 000014
【図８ｃ】
2006190120.tif 000015
【図８ｄ】
2006190120.tif 000016
【図９ａ】
2006190120.tif 000017
【図９ｂ】
2006190120.tif 000018
【図９ｃ】
2006190120.tif 000019
【図１０ａ】
2006190120.tif 000020
【図１０ｂ】
2006190120.tif 000021
【図１０ｃ】
2006190120.tif 000022