(57)【特許請求の範囲】
【請求項１】
一以上のＣＰＵと主記憶装置を有する複数個のノードを任意の数のグループに分けることによって各グループに含まれるノードからなるクラスタを構成し、そのクラスタごとに独立したオペレーティングシステムを動作させることを可能とし、
各クラスタにおけるリクエストアドレスの最上位ビットにより各クラスタのオペレーティングシステムにおいて使用できるアドレス空間を二分割し、その一方を自クラスタの固有メモリ領域を指定するアドレスとして使用できるアドレス空間とするとともに他方を自ノード及び他ノードから参照できる共有メモリ領域を指定するアドレスとして使用できるアドレス空間とし、
その最上位ビットに続く所定数のビットであって、前記リクエストアドレスを含むリクエストを発行した前記ＣＰＵが属する前記クラスタのクラスタ番号を示す前記所定数のビットによりその共有メモリ領域を指定するアドレスとして使用できるアドレス空間をシステム上の前記クラスタの最大数によって均等分割してその一を自クラスタをオーナーとする共有メモリ領域を指定するアドレスとして使用できるアドレス空間とするとともにその他を他クラスタをオーナーとする共有メモリ領域を指定するアドレスとして使用できるアドレス空間とし、
リクエストアドレスの最上位ビットと最上位ビットに続く該所定数のビットを除くビットを前記主記憶装置のアドレスを指定するために用いる実アドレスとして使用して、
前記クラスタの各々が、自クラスタを構成するノードに備わった前記主記憶装置のメモリ領域及び他クラスタを構成するノードに備わった前記主記憶装置の共有メモリ領域のアドレスを指定できるデータ処理装置であって、
前記複数個のノードを任意の数の前記クラスタに分けて前記システム内でクラスタを構成し、
前記クラスタ間の通信を前記共有メモリ領域内で行うデータ処理装置において、
前記クラスタの各々に番号を付し、
前記データ処理装置がクラスタ構成制御手段を具え、当該クラスタ構成制御手段の設定により、前記クラスタを自在に構成できるようにし、
前記データ処理装置がプロセッサバス制御部を具え、
前記プロセッサバス制御部は、前記ノードのそれぞれに含まれる前記ＣＰＵの各々から送出された前記リクエストアドレスを含むリクエストを処理し、
前記クラスタ構成制御手段が、前記ノードの各々に設けたクラスタ構成制御部で構成されており、
当該クラスタ構成制御部が、前記データ処理装置内でクラスタ構成が有効か否かを示す第１のレジスタと、自ノードのノード番号を示す第２のレジスタとを、それぞれ１つ具え、各ノードの前記主記憶装置が有するアドレス空間の最下位アドレスを示す第３のレジスタと、各ノードの前記主記憶装置が有するアドレス空間の最上位アドレスを示す第４のレジスタと、各ノードが属するグループ番号を示す第５のレジスタと、各グループがオーナーの前記共有メモリ領域の容量を示す第６のレジスタと、各グループがオーナーとなる前記共有メモリ領域のベースアドレスを示す第７のレジスタとを、それぞれ、ノードの数と同数具え、
プロセッサバス制御部は、前記ＣＰＵから送られた前記リクエストアドレスに含まれる前記最上位ビットを参照し、当該最上位ビットが前記固有メモリ領域へのアクセスであることを示す場合に、前記所定数のビットに自ノードの属する前記クラスタの前記クラスタ番号をセットし、
前記クラスタ構成制御部は、前記ＣＰＵから前記プロセッサバス制御部を介して前記リクエストアドレスを含むリクエストを受信し、当該リクエストが前記共有メモリ領域若しくは前記固有メモリ領域のどちらへのアクセスであるかを示す前記最上位ビットにより当該リクエストが前記固有メモリ領域若しくは前記共有メモリ領域のいずれに対するアクセスであるかを認識し、前記所定数のビットと前記第２のレジスタ及び前記第５のレジスタとを参照して前記リクエストが自ノードが属するグループに対するアクセスであるかを判断し、自ノードが属するグループに対するアクセスである場合には、前記最下位アドレス及び前記最上位アドレスを示す前記第３及び第４のレジスタと前記ＣＰＵからのアクセスのアクセス先のグループ番号とを参照して、前記ＣＰＵからのアクセスが自ノードに対するアクセスであるかを判断するとともに、自ノードのメモリ領域にアクセスすることを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理装置およびデータ処理方法に関するものであり、特に、一以上のＣＰＵと主記憶装置から構成される複数個のノードで構成するシステム内にクラスタ構成を実現し、クラスタごとに独立したオペレーティングシステムを動作させるようにしたデータ処理装置および方法に関する。
【０００２】
【従来の技術】
従来より、データ処理装置を構成する場合に、一以上のＣＰＵと主記憶装置を有するクラスタを複数個設けて、これをネットワークで接続し、データ処理を複数のクラスタで並列処理することが行われている。このようなデータ処理装置の一例として、例えば特開平６−２３１０３３号公報に記載されたデータ処理装置がある。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来のデータ処理装置では、システムを構成する各クラスタを接続ネットワークを用いて接続するようにしており、クラスタ間の通信は拡張メモリを用いて行っているため、装置が大型化すると共に、クラスタ間の通信速度が遅くなるという問題がある。
また、一旦設定したクラスタ構成を簡単には変更することができず、システムの運用の目的に応じてクラスタ構成を変更したい場合などに、ユーザのバリエーションが制限されてしまうという問題もある。
【０００４】
本発明は、データ処理装置を大型化させることなくシステム内にクラスタを構成し、このクラスタ間の通信を高速で行えるようにしたデータ処理装置を提供することを目的とする。
また、システムの運用の目的に応じて、システム内でユーザが任意にクラスタを構成することができるデータ処理装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記課題を解決するために、本発明のデータ処理装置は、一以上のＣＰＵと主記憶装置から構成される複数個のノードでひとつのシステムを構成するデータ処理装置において、前記主記憶装置のメモリ空間に前記クラスタに共通する共有メモリ領域を設けるとともに、前記複数個のノードを任意の数のグループに分けて前記システム内でクラスタを構成し、前記グループ間の通信を前記共有メモリ領域内で行うようにしたことを特徴とする。
【０００６】
このように本発明のデータ処理装置によれば、各ノードの主記憶装置に共有メモリ領域を設けて、この領域用いてクラスタ間の通信を行うようにしているため、装置を大型化することなくクラスタ間の通信を行うことができる。また、、拡張メモリを用いて通信を行う場合に比べて、より高速で通信することができる。
【０００７】
また、本発明のデータ処理装置は、前記クラスタを、グループごとに独立したオペレーティングシステムで動作させるようにし、このオペレーティングシステム間の通信を前記共有メモリ領域内で行うようにしたことを特徴とする。
このように構成することによって、一つのシステム内の異なるアドレス空間に複数のオペレーティングシステムを同時にアクセスさせることが可能となる。
【０００８】
更に、本発明のデータ処理装置は、クラスタ構成制御手段を具え、当該クラスタ構成制御手段の設定により、前記クラスタを自在に構成できるようにしたことを特徴とする。なお、このクラスタ構成制御手段は、前記ノードの各々に設けたクラスタ構成制御部で構成されており、このクラスタ構成制御部が複数のレジスタを具え、このレジスタの設定を変更することによって、前記ノードを自在にグループ分けできるようにすることが好ましい。
【０００９】
このように構成することによって、システム内でユーザが任意にクラスタを構成をすることが可能となり、装置の運用の目的に応じて適切な構成を選択することができる。また、クラスタ構成手段を各ノードに設けた複数のレジスタで構成することによって、ユーザは、このレジスタの設定を変更することで容易にクラスタの構成を変更することができるようになり、ユーザのバリエーションを広げることができる。
【００１０】
本発明のデータ処理装置は、前記各ＣＰＵは、当該ＣＰＵが属するグループの固有メモリと、当該ＣＰＵが属するグループがオーナの共有メモリと、当該ＣＰＵが属していない他のグループがオーナの共有メモリに対してのみアクセス可能である。また、前記ＣＰＵは当該ＣＰＵが属していない他のグループがオーナの共有メモリに対してアクセスする場合、当該共有メモリを参照することはできるが、変更することはできない。さらに、これらアクセス可能なメモリ領域以外の領域にアクセスしようとした場合は、当該アクセスを不正アクセスとして検出するようにすることが好ましい。
【００１１】
このように構成することによって、一つのグループを動作させるオペレーションシステムが、他のグループに与える影響を最低限に抑えることができる。
【００１２】
【発明の実施の形態】
図１は、本発明のデータ処理装置の第１の実施形態の構成を示すブロック図である。
データ処理装置は、複数のノードを具え、これらのノードはシステムバス１０５によって互いに接続されている。本例では、４個のノード１０１〜１０４が設けられている。各ノードは、ノード１０１に代表して示すように、それぞれ４個のプロセッサ１１１〜１１４と、システム制御装置１１６と、主記憶装置１１７とを有している。各プロセッサはプロセッサバスによってシステム制御装置１１６に接続されており、システム制御装置１１６は、システムバス１０５および主記憶装置１１７に接続している。
【００１３】
他のノード１０２〜１０４にも同様に、システム制御装置と、４個のプロセッサと一の主記憶装置とが設けられており、従ってシステム全体では４個のシステム制御装置と、１６個のプロセッサと、４個の主記憶装置とが存在する。また、各ノードの主記憶装置１１７のメモリ空間は、後述するとおり、クラスタ制御部１２１の各レジスタの設定により、そのノードが属するグループの固有メモリと、そのノードが属するグループがオーナの共有メモリに分けて設定されている。なお、本例では、各ノードをシステムバスで、各プロセッサをプロセッサバスで接続するようにしているが、これらはスター接続としても良い。
【００１４】
図２は、各ノード１０１〜１０４に設けられているシステム制御装置１１６の構成を示すブロック図である。システム制御装置１１６は、プロセッサバス制御部２１１と、主記憶装置インタフェース部２１２と、システムバス制御部２１３と、クラスタ構成制御部１２１とを具えている。プロセッサバス制御部２１１はプロセッサバス１１５へ、主記憶装置インターフェース部２１２は主記憶装置１１７へ、システムバス制御部２１３はシステムバス１０５へ接続されている。また、プロセッサバス制御部２１１とシステムバス制御部２１３同士が接続されており、プロセッサバス制御部２１３は更に主記憶装置インターフェース部２１２へ接続されている。クラスタ構成制御部１２１は、プロセッサバス制御部２１１とシステムバス制御部２１３とに接続されている。
【００１５】
各プロセッサ１１１〜１１４（及びノード１０２〜１０４に設けられた図示しないプロセッサ）は、当該プロセッサが属しているグループ（以下「自グループ」という）の固有メモリと、自グループがオーナの共有メモリと、当該プロセッサが属していないグループ（以下「他グループ」という）がオーナの共有メモリに対してアクセスすることができ、他グループの固有メモリにはアクセスできない。また、各プロセッサは、他グループがオーナの共有メモリを参照することはできるが、これを変更することはできない。
【００４０】
図３は、クラスタ構成制御部１２１の一例を示すブロック図である。なお、本実施形態において、装置１は４個のノードで構成されており、従って、クラスタを構成するグループの数は最大で４個となり、グループを４個とした場合は、各グループが一のノードで構成されることになる。
【００４１】
クラスタ構成制御部１２１は、クラスタ演算部５１８と、７個のレジスタ５１１〜５１７とを具えている。各レジスタは、クラスタ構成の有効／非有効を示す第１レジスタ５１１、自ノードのノード番号を示す第２レジスタ５１２、各ノードの持つメモリ空間の最下位アドレスを示す第３レジスタ５１３、各ノードの持つメモリ空間の最上位アドレスを示す第４レジスタ５１４、各ノードについてそのノードが属しているグループのグループ番号を示す第５レジスタ５１５、各グループの共有メモリのサイズを示す第６レジスタ５１６、および各グループの共有メモリのベースアドレスを示す第７レジスタ５１７で構成されている。
【００４２】
これらのレジスタ５１１〜５１７の値は、システムの初期化時に、ノード１０１のプロセッサ１１１〜１１４（およびノード１０２〜１０３に設けた図示しないプロセッサ）によって、あるいはサービスプロセッサ（図示せず）によって、設定される。
【００４３】
第１レジスタ５１１は、データ処理装置内でクラスタ構成が有効か否かを示す１ビットのレジスタである。すなわち、レジスタ５１１を１に設定した場合、クラスタ構成が有効となり、レジスタ５１２〜５１７の設定値が意味を持つことになる。
【００４４】
第２レジスタ５１２は、自ノードのノード番号を示す２ビットのレジスタである。
【００４５】
第３レジスタ５１３は、各ノードに対応する数（本例では４個）のエントリを持ち、各ノードの主記憶装置が持つアドレス空間の最下位アドレスを示す、例えば６１ビットのレジスタである。
【００４６】
第４レジスタ５１４は、各ノードに対応する数（本例では４個）のエントリを持ち、各ノードの主記憶装置が持つアドレス空間の最上位アドレスを示す、例えば６１ビットのレジスタである。
【００４７】
第５レジスタ５１５は各ノードに対応する数（本例では４個）のエントリを持ち、各ノードのが属するグループのグループ番号を示す。各エントリは２ビットである。装置内でクラスタ構成を実現する場合、一つ以上のノードの集まりをグループとして設定し、このグループに属するノードを独立したオペレーティングシステムによって動作させる。従って、複数のノードを一つのグループとして設定する場合は、レジスタ５１５のエントリを同じグループに属するノードについて同じグループ番号に設定する。
【００４８】
第６レジスタ５１６は、各グループに対応するエントリを持ち、（本例では最大で４個）各グループがオーナの共有メモリの容量を示す。
【００４９】
第７レジスタ５１７は、各グループに対応するエントリを持ち、（本例では最大で４個）各グループがオーナの共有メモリの、メモリ空間アドレスにおけるベースアドレスを示す。
【００５０】
クラスタ演算部５１８は、プロセッサバス制御部２１１から共有メモリに対するアクセスをリクエストしたアドレス信号３０６を受け取ると、このアドレスが自グループの共有メモリに対するアクセスか、他グループの共有メモリに対するアクセスかを判別し、プロセッサバス制御部２１１へこの判断を信号３０７で通知する。また、クラスタ演算部５１８はレジスタ５１２と、レジスタ５１５とから自ノードのグループ番号を演算して、プロセッサバス制御部２１１へ信号３０８で通知する。
【００５１】
更に、クラスタ演算部５１８は、システムバス制御部２１３からそれぞれのグループの固有メモリに対するアクセスをリクエストしたアドレス信号３０５を受け取ると、レジスタ５１２およびレジスタ５１５を参照して、このアドレスが自グループの固有メモリに対するアクセスか、他グループの固有メモリに対するアクセスかを判別し、この判断を信号３０５でシステムバス制御部２１３へ通知する。
【００５２】
次に、上述した本実施形態の動作を説明する。なお、第１レジスタ５１１が０の場合は、システムは従来通り一つのオペレーティングシステムによって動作するので、この動作に関する説明は省略するものとし、個々では、レジスタ５１１が１に設定されている場合、すなわち、装置内でクラスタ構成が有効である場合の動作についてのみ説明する。
【００５３】
まず、自グループの固有メモリへアクセスするリクエストが出された場合について説明する。
【００５４】
いずれかのプロセッサから、メモリへアクセスするリクエストが発行されると、このリクエストはプロセッサバス１１５を介してプロセッサバス制御部２１１へ送られる。プロセッサバス制御部２１１では、このリクエストのアドレスビット６３が０であることから、このリクエストが固有メモリへのアクセスであることを認識し、リクエストのアドレスのビット６１〜６２に自ノードの属するグループのグループ番号をセットして、当該リクエストをシステムバス制御部２１３に送る。このグループ番号は、クラスタ構成制御部１２１からの出力信号３０８を参照してセットする。
【００５５】
システムバス制御部２１３は、プロセッサバス制御部２１１から送られてきたリクエストをシステムバス１０５へ発行する。システムバス１０５を介して、すべてのノード１０１〜１０４のシステムバス制御部２１３がこのリクエストを受け取って、それぞれのクラスタ構成制御部１２１へアドレスを送信する。各クラスタ構成制御部１２１は、このリクエストのアドレスのビット６３が０であるのでこのリクエストが固有メモリへのアクセスであることを認識する。
【００５６】
次いで、クラスタ構成制御部１２１は、アドレスのビット６１〜６２の値と、レジスタ５１２及び５１５とを参照して、このリクエストが自ノードが属するグループに対するアクセスであるかどうかを判断し、自ノードが属するグループに対するアクセスの場合には、レジスタ５１３及びレジスタ５１４を参照して、このリクエストが自ノードに対するアクセスであるかどうかを判断し、その結果をシステムバス制御２１３へ報告する。
【００５７】
この報告が、自ノードの固有メモリに対するアクセスであるとの報告である場合、システムバス制御部２１３は、アドレスのビット６１〜６２を００にセットして、主記憶装置インターフェース２１２へリクエストを送信する。
【００５８】
主記憶装置インターフェース２１２は、システムバス制御部２１３からのリクエストを受け取ると、このリクエストを主記憶装置１１７へ発行し、所定の手順に従ってリクエストが実行される。
【００５９】
一方、クラスタ構成制御部１２１からシステムバス制御部２１３からの報告が、自ノードのメモリに対するアクセスではない場合、システムバス制御部２１１３はそのリクエストを破棄する。
【００６０】
次に、プロセッサが共有メモリへアクセスするリクエストを出した場合について説明する。
【００６１】
いずれかのプロセッサから、メモリへアクセスするリクエストが発行されると、このリクエストはプロセッサバス１１５を介して、プロセッサバス制御部２１１へ送られる。プロセッサバス制御部２１１では、このリクエストのアドレスのビット６３が１であることから、このリクエストが共有メモリへのアクセスであることを認識し、リクエストのアドレス信号３０６をクラスタ構成制御部１２１へ送信する。クラスタ構成制御部１２１では、アドレスのビット６３が１であるので、このリクエストが共有メモリへのアクセスであることを認識して、リクエストのアドレスのビット６１〜６２の値と、レジスタ５１２およびレジスタ５１５を参照してこのリクエストが自ノードの属するグループへのアクセスかどうかを判断して、その結果をプロセッサバス制御部２１１へ報告する。
【００６２】
ここで、クラスタ構成制御部１２１は、リクエストのアドレスがレジスタ５１３〜５１４およびレジスタ５１６〜５１７で示されるアドレスレンジの範囲を超えたアクセスであるかどうかを判断して、範囲外であった場合、当該アクセスを不正アクセスとしてプロセッサバス制御部２１１へ報告する。
【００６３】
プロセッサバス制御部２１１は、リクエストのアドレスがアドレスレンジの範囲内である適正なアドレスであるとの報告を受けた場合でも、当該リクエストが更新（ライト）であり、かつ他グループがオーナの共有メモリへのアクセスであった場合は、これを不正アクセスとして検出する。不正アクセスが検出されると、障害処理が起動される。障害処理については周知の技術であるため、ここでは説明を省略する。
【００６４】
不正アクセスが検出されない場合、プロセッサバス制御部２１１は、そのリクエストをシステムバス制御部２１３へ発行し、システムバス制御部２１３は当該リクエストをシステムバス１０５へ送る。
【００６５】
システムバス１０５を介して、ノード１０１〜１０４の各システムバス制御部２１３はこのリクエストを受け取り、それぞれのクラスタ構成制御部１２１へアドレスを送信する。各クラスタ構成制御部１２１は、このリクエストのアドレスのビット６３が１であるので、このリクエストが共有メモリへのアクセスであることを認識する。
【００６６】
次いで、クラスタ構成制御部１２１は、アドレスのビット６１〜６２の値と、レジスタ５１２およびレジスタ５１５とを参照して、このリクエストが自ノードが属するグループに対するアクセスであるかどうかを判断し、自ノードが属するグループに対するアクセスである場合には、レジスタ５１３およびレジスタ５１４を参照して、このリクエストが自ノードに対するアクセスであるかどうかを判断し、その結果をシステムバス制御部２１３へ報告する。
【００６７】
この報告が、自ノードの共有メモリに対するアクセスであるとの報告である場合、システムバス制御部２１３は、アドレスのビット６１〜６３を０００にセットして、主記憶装置インターフェース２１２へリクエストを送信する。
【００６８】
主記憶装置インターフェース２１２はシステムバス制御部２１３からのリクエストを受け取ると、このリクエストを主記憶装置１１７へ発行し、所定の手順に従ってリクエストが実行される。
【００６９】
一方、クラスタ構成制御部１２１からシステムバス制御部２１３への報告が、自ノードに対するアクセスではない場合は、システムバス制御部２１３はそのリクエストを破棄する。
【００７０】
図４は、本発明のデータ処理装置で好適に使用されるアドレスのフォーマットの一例を示す図である。この図は、プロセッサが自グループの固有メモリ、自グループまたは他グループの共有メモリへアクセスする場合のフォーマットである。本例では６４ビット中、実アドレス空間としてビット０〜６０が使用されており、ビット６１〜６３は共有メモリにアクセスする際に使用される。即ち、プロセッサは共有メモリにアクセスする場合、ビット６３を１にセットすると共に、ビット６１〜６２にグループ番号をセットして、共有メモリ空間のアドレスをビット０〜６０で指定するようにする。一方、プロセッサが自グループの固有メモリをアクセスする場合は、ビット６１〜６３を０００にセットして、ビット０〜６０でアドレスを指定するようにする。
【００７１】
このように構成することによって、一以上のＣＰＵと、ひとつの主記憶装置で構成されるノードを複数個設けて一つのシステムを構成するデータ処理装置において、各ノードを独立したオペレーティングシステムで動作する複数のグループとして運用することが可能となると共に、これらのグループ間で、共有メモリを介して高速で通信することができる。
【００７２】
なお、上述したレジスタの構成、アドレスフォーマットの構成は、本発明を実施するための一例である。本発明はこれらの例に限定されるものではなく、様々な変形例が考えられる。
【００７３】
【発明の効果】
上述したとおり、本発明のデータ処理装置によれば、装置内で選択的にクラスタ構成を実現することが可能である。この場合、クラスタを構成するグループがそれぞれ独立のオペレーティングシステムで動作し、オペレーティングシステム間の通信は共有メモリを使用して同期をとることができる。一方、クラスタ構成にしない場合には、従来どおり一のオペレーティングシステムによってシステムが動作する。このように、一つのシステム内で、クラスタ構成にしたシステム、あるいは、クラスタ構成をとらないシステムを選択することができる。また、レジスタの設定によってクラスタを構成するグループ分けを任意に行うことができるので、システムの運用の目的に応じて適切な構成を選ぶことができる。
更に、不正アクセスを検出する機構が設けられているため、クラスタを構成する一つのグループの動作は他のグループに最低限の影響しか与えることはない。
【図面の簡単な説明】
【図１】図１は、本発明のデータ処理装置の構成を示すブロック図である。
【図２】図２は、本発明のデータ処理装置のシステム制御装置の構成を示すブロック図である。
【図３】図３は、本発明のデータ処理装置のクラスタ構成制御部の構成例を示すブロック図である。
【図４】図４は、本発明のデータ処理装置で使用されるアドレスのフォーマットの一例を示す図である。
【符号の説明】
１０１〜１０４  ノード
１０５          システムバス
１１１〜１１４  プロセッサ
１１５          プロセッサバス
１１６          システム制御装置
１１７          主記憶装置
１２１          クラスタ構成制御部
２１１          プロセッサバス制御部
２１２          主記憶装置インターフェース部
２１３          システムバス制御部
５１１〜５１７  レジスタ
５１８  クラスタ演算部
【図１】
0003976432.tif 000002
【図２】
0003976432.tif 000003
【図３】
0003976432.tif 000004
【図４】
0003976432.tif 000005