(57)【要約】【課題】  障害に関わる主記憶領域に関与しているプロセッサのみに障害の影響を限定するマルチプロセッサシステム及び障害処理方法を提供する。【解決手段】  複数のマイクロプロセッサ２０〜２ｎと、複数のマイクロプロセッサ２０〜２ｎとバス３１で接続され、マイクロプロセッサ２０〜２ｎが共有する主記憶装置１０と、を含むシステムである。主記憶装置１０は、主記憶装置１０内の記憶空間が複数の領域に分割され各領域がどのプロセッサによって使用されているかを表すレジスタ部と、領域のいずれかに障害が発生した場合にレジスタ部を参照してプロセッサを特定してプロセッサに通知する通知部とを備え、割り込み信号線３０を介して障害の発生を通知する。【選択図】  図１
2005234744.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、前記複数のプロセッサとバスで接続され、前記プロセッサが共有する主記憶装置と、を含むマルチプロセッサシステムにおいて、
前記主記憶装置は、
前記主記憶装置内の記憶空間が複数の領域に分割され各領域がどのプロセッサによって使用されているかを表すレジスタ部と、
前記領域のいずれかに障害が発生した場合に前記レジスタ部を参照して前記プロセッサを特定して前記プロセッサに前記障害を通知する通知部と、
を備えることを特徴とするマルチプロセッサシステム。
【請求項２】
前記通知部は、割り込み制御回路を備え、前記特定されたプロセッサに対し割り込みによって通知することを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
前記レジスタ部は、前記各領域がどの前記プロセッサ上で動作するプログラムによって使用されているかを表すことを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項４】
前記レジスタ部は、前記プロセッサ毎に前記複数の領域を指示する構成とされることを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項５】
前記レジスタ部は、前記複数のプロセッサ中のどのプロセッサが前記複数の領域のどの領域を使用しているかをフラグによって示す構成とされることを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項６】
前記フラグは、前記フラグに対応する領域をプロセッサが使用する際、または解放する際に、前記プロセッサ上で動作するプログラムによって書き換えられることを特徴とする請求項５記載のマルチプロセッサシステム。
【請求項７】
複数のプロセッサと、前記複数のプロセッサとバスで接続され、前記プロセッサが共有する主記憶装置と、を含むマルチプロセッサシステムの障害処理方法において、
前記主記憶装置内の記憶空間が複数の領域に分割され各領域がどの前記プロセッサによって使用されているかをフラグで表し、
前記領域のいずれかに障害が発生した場合に前記フラグを参照して前記プロセッサを特定して割り込みを通知することを特徴とする障害処理方法。
【請求項８】
前記フラグは、前記各領域がどの前記プロセッサ上で動作するプログラムによって使用されているかを表すことを特徴とする請求項７記載の障害処理方法。
【請求項９】
前記フラグは、前記フラグに対応する領域をプロセッサが使用する際、または解放する際に、前記プロセッサ上で動作するプログラムによって書き換えられることを特徴とする請求項７記載の障害処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムおよび障害処理方法に関し、特に主記憶装置における障害の処理方法と、この処理方法を実行するマルチプロセッサシステムに関する。
【背景技術】
【０００２】
近年のマルチプロセッサ技術の発展によって、主記憶装置に対して数十台〜数百台のプロセッサを接続してシステム運用を行う情報処理装置が登場するようになった。このような情報処理装置では、複数のプロセッサにより共有されるメモリを管理するメモリ管理方法が知られている。例えば、特許文献１には、メモリ領域の所有権の確保や解放を高速に行うメモリ管理方法が開示されている。このメモリ管理方法は、複数のプロセッサによって共有される共有メモリ上の領域毎に、各プロセッサに対応したフラグをそれぞれ設ける。そして、このフラグにより、対応するプロセッサが共有メモリ上の対応する領域を使用している状態であるか、未使用の状態であるか、所有権を他のプロセッサへ譲渡している途中の状態であるかを表示する。各プロセッサは、メモリ領域の確保時に、フラグによりメモリ領域が使用中及び譲渡中か否かを検出する。そして、使用中及び譲渡中のいずれかの状態にもない場合のみメモリ領域を確保するように動作するものである。
【０００３】
一方、主記憶装置で障害が発生した場合に、メモリアクセスを実行した要求元のプロセッサに対して障害の発生を通知し、このプロセッサが障害処理を実行するマルチプロセッサが知られている。例えば、特許文献２には、メモリアクセスを実行した要求元のプロセッサに対して障害の発生を通知し、このプロセッサが障害処理を実行するマルチプロセッサシステムが開示されている。このシステムは、任意のプロセッサから主記憶装置にアクセスした際に、主記憶装置に障害が発生すれば、障害発生検出手段が障害発生の有無を検出し、同時に、主記憶制御ユニットのプロセッサ識別手段がアクセス元のプロセッサを識別し、この障害を起こしたプロセッサに対して障害発生通知手段によって障害発生を通知する。こうして、障害を起こしたプロセッサに対して障害発生を通知することにより、プロセッサ側のソフトウェアにより主記憶装置からの切り離し処置などの必要な対策をとらせるようにし、あるプロセッサのアクセス時に主記憶装置や主記憶制御ユニットで発生した障害に対しても、残りのプロセッサが主記憶装置にアクセスできるようにし、特定のプロセッサに起因する一過性の障害に対してシステム全体がダウンすることがないようにして、耐障害性を向上させるものである。
【０００４】
【特許文献１】特開平４−３６４５５０号公報  （図１）
【特許文献２】特開平５−８１０５９号公報  （図２）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
マルチプロセッサシステムでは、一般に複数のプロセッサによってメモリ（主記憶装置）が共有されるが、メモリにおいて障害が発生すると、複数のプロセッサに影響が波及する虞があり、障害の影響が大きい。ところで特許文献１のメモリ管理方法の目的は、分割したメモリ領域を確保するための排他制御にあり、複数のプロセッサで、分割された特定のメモリ領域を共有するような構成とはなっていない。また、各プロセッサに対応した使用状態の情報を共有メモリ上で管理しており、共有メモリ自体の故障には対応することができない。さらに、障害時に信頼性の向上を図ることができる旨の記載があるものの、障害処理に対する具体的な構成や動作は、一切開示されていない。
【０００６】
一方、特許文献２に開示されているシステムでは、主記憶装置で訂正不可能な障害が発生した場合に、メモリアクセスを実行した要求元のプロセッサに対してのみ障害の発生を通知し、このプロセッサが障害処理を実行することによってシステムの運用継続の可否を判断していた。しかし、主記憶装置の記憶領域を複数のプロセッサで共有している場合には、各プロセッサで共有している主記憶部分で故障が発生すると、障害の発生を通知された最初のプロセッサによって障害処理が行われる前に、他のプロセッサが同一領域へメモリアクセスを行う可能性がある。この場合、他のプロセッサは、障害を知ることなく主記憶装置へのアクセス処理を実行してしまい、障害の影響が波及してしまう。
【０００７】
これを防止するために、主記憶装置で訂正不可能な障害が発生した場合、訂正不可能な障害はシステムの中枢に障害が発生しているものと見なし、マルチプロセッサを構成する全てのプロセッサに障害の発生を通知し、速やかにシステムを停止させる方法が考えられる。しかしながら、プロセッサ上で動作しているプログラムが、障害に関わる主記憶領域を全く使用していない場合でも、割り込みによって処理が中断されるため、システム全体に障害の影響が波及してしまい、耐故障性の面で不十分である。
【０００８】
本発明の目的は、障害に関わる主記憶領域に関与しているプロセッサのみに障害の影響を限定するマルチプロセッサシステム及び障害処理方法を提供することにある。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、本発明に係るマルチプロセッサシステムは、第１のアスペクトによれば、複数のプロセッサと、複数のプロセッサとバスで接続され、プロセッサが共有する主記憶装置と、を含むシステムである。主記憶装置は、主記憶装置内の記憶空間が複数の領域に分割され各領域がどのプロセッサによって使用されているかを表すレジスタ部と、領域のいずれかに障害が発生した場合にレジスタ部を参照してプロセッサを特定してプロセッサに通知する通知部と、を備える。
【００１０】
本発明において、好ましくは、通知部は、割り込み制御回路を備え、特定されたプロセッサに対し割り込みによって通知するようにしてもよい。
【００１１】
また、本発明において、好ましくは、レジスタ部は、各領域がどのプロセッサ上で動作するプログラムによって使用されているかを表すようにしてもよい。
【００１２】
さらに、本発明において、好ましくは、レジスタ部は、プロセッサ毎に複数の領域を指示する構成とされるようにしてもよい。
【００１３】
また、本発明において、好ましくは、レジスタ部は、複数のプロセッサ中のどのプロセッサが複数の領域のどの領域を使用しているかをフラグによって示す構成とされるようにしてもよい。
【００１４】
さらに、本発明において、好ましくは、フラグは、フラグに対応する領域をプロセッサが使用する際、または解放する際に、プロセッサ上で動作するプログラムによって書き換えられるようにしてもよい。
【００１５】
本発明に係る障害処理方法は、第２のアスペクトによれば、複数のプロセッサと、複数のプロセッサとバスで接続され、プロセッサが共有する主記憶装置と、を含むマルチプロセッサシステムの障害処理方法に適用される。この方法は、主記憶装置内の記憶空間が複数の領域に分割され各領域がどのプロセッサによって使用されているかをフラグで表す。また、領域のいずれかに障害が発生した場合にフラグを参照してプロセッサを特定して割り込みを通知する。
【発明の効果】
【００１６】
本発明によれば、主記憶装置に障害が発生した場合、主記憶装置の記憶空間中の障害の発生した領域を使用しているプロセッサのみに、障害が発生したことを選択的に通知するように動作する。したがって、障害が発生した記憶空間を使用しているマイクロプロセッサ（プログラム）のみに障害の波及範囲を限定し、障害発生の影響を受けるプロセッサを最小限に抑えることができる。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明の実施形態に係るマルチプロセッサシステムの構成を示すブロック図である。図１において、マルチプロセッサシステムは、マイクロプロセッサ２０、２１、２２、・・２ｎと主記憶装置１０から構成され、マイクロプロセッサ２０、２１、２２、・・２ｎと主記憶装置１０とがシステムバス３１を介して接続されている。また、主記憶装置１０からは、割り込み信号線３０が各マイクロプロセッサ２０〜２ｎに対して、個別に結線されている。
【００１８】
以上のようなマルチプロセッサシステムにおいて、複数のマイクロプロセッサ２０〜２ｎがシステムバス３１を介して主記憶装置１０へのアクセスを行う。割り込み信号線３０は、主記憶装置１０の記憶空間内で障害が発生した場合に、マイクロプロセッサ２０〜２ｎへ障害が発生したことを通知する目的で使用される。
【００１９】
また、主記憶装置１０には、主記憶装置１０内の記憶空間を複数の領域に分割して各領域がどのマイクロプロセッサのプログラムによって使用されているかを表すレジスタ部と、領域のいずれかに障害が発生した場合にレジスタ部を参照してマイクロプロセッサを特定して割り込み信号線３０を介して通知する通知部と、を備えている。
【００２０】
以上のように構成されるマルチプロセッサシステムは、主記憶装置１０内の記憶空間が複数の領域に分割され各領域がどのマイクロプロセッサによって使用されているかをレジスタ部内でフラグにより表し、領域のいずれかに障害が発生した場合にフラグを参照してマイクロプロセッサを特定して割り込みを通知するように動作する。
【実施例】
【００２１】
次に、より具体的にマルチプロセッサシステムの構成、特に主記憶装置１０の構成について説明する。図２は、本発明の実施例に係るマルチプロセッサシステムの構成を示すブロック図である。なお、図２では、主記憶装置１０における障害をマイクロプロセッサ２０に通知する場合を例にして説明するために、マイクロプロセッサ２１〜２ｎについては記載を省略してある。
【００２２】
図２において、主記憶装置１０は、主記憶部１１と、記憶制御回路１２と、割り込み制御回路１４と、アドレスレジスタ１５を備えている。主記憶部１１は、主記憶空間を複数の領域Ａ〜Ｈに分割して管理・運用されており、これらの領域について個別に障害の検出が可能とする。また、記憶制御回路１２の中には、記憶領域Ａ〜Ｈのそれぞれに対応して、マイクロプロセッサ２０〜２ｎがどの記憶領域を使用中であるかを記憶する制御レジスタ群１３を備えている。割り込み制御回路１４は、記憶制御回路１２の指示で、制御レジスタ群１３の記録内容に基づいて、各マイクロプロセッサに障害の発生を割り込み信号線３０を介して通知する。例えば、制御レジスタ群１３の中の制御レジスタ１３０の内容に基づいて、マイクロプロセッサ２０に障害の発生を割り込み信号線３０を介して通知する。
【００２３】
一方、マイクロプロセッサ２０が主記憶部１１にアクセスする場合には、システムバス３１を介して主記憶装置１０へのアクセスを行う。主記憶部１１にアクセスするためのアドレス情報は、アドレスレジスタ１５で解読され、主記憶部１１の所定の領域が割り当てられる。例えば、図２では領域Ａ、Ｂ、Ｅがマイクロプロセッサ２０によってアクセスされ、各領域に対応する制御レジスタ１３０のビット内容が使用中である旨の値「１」に設定されている。
【００２４】
図３は、記憶制御回路１２の制御レジスタ群１３の設定例を表しており、制御レジスタ群１３には、システムに属するマイクロプロセッサ２０〜２ｎに対応してそれぞれ制御レジスタ１３０〜１３ｎが設けられている。制御レジスタ１３０〜１３ｎは、対応するプロセッサが主記憶空間のどの領域を使用しているのかを表している。図３に示す例では、プロセッサ＃０は、記憶領域の領域Ａ、Ｂ、Ｅを使用し、同様にプロセッサ＃１は、記憶領域の領域Ａ、Ｇを使用し、プロセッサ＃２は、記憶領域の領域Ａ、Ｂ、Ｅ、Ｆを使用し、プロセッサ＃ｎは、記憶領域の領域Ｂを使用している。制御レジスタ１３０〜１３ｎの各ビットは、主記憶部１１の分割された主記憶空間の各領域Ａ〜Ｈに対応する記憶領域における使用状態を表すフラグ（使用中を「１」、不使用を「０」）として用いられる。
【００２５】
図２において、マイクロプロセッサ２０上で動作しているプログラム（オペレーティングシステム）は、所定のマイクロプロセッサと所定の主記憶部１１の記憶領域とでグループを構成し、１つの独立したシステムを構成している。このときプログラムは、自らが使用する主記憶部１１の記憶領域について、マイクロプロセッサごとに設けた制御レジスタ１３０〜１３ｎの記憶領域に対応したビットに、現在その記憶領域を使用中である旨の値「１」を予め書込む。また、記憶領域を使用していない場合、あるいは使用しなくなった（解放した）場合には、値「０」を書込む。
【００２６】
記憶制御回路１２は、主記憶部１１に障害が発生した場合に、障害が発生した記憶領域を特定し、この記憶領域に対応した制御レジスタ１３０〜１３ｎのビットを参照する。このとき制御レジスタ１３０〜１３ｎのビットが、該当する記憶領域の使用中を表す状態に設定されていた場合、すなわち値「１」の場合には、割り込み制御回路１４に指示して、対応するマイクロプロセッサ、例えばマイクロプロセッサ２０に対し、割り込み信号線３０を介して障害の発生を通知する。
【００２７】
いま、領域Ｇで障害が発生したとすると、記憶制御回路１２は、制御レジスタ１３０〜１３ｎを参照し、領域Ｇを使用しているマイクロプロセッサを特定する。図３の例では、制御レジスタ１３１の内容からプロセッサ＃１（マイクロプロセッサ２１）がこの条件にあてはまる。記憶制御回路１２は、制御レジスタ１３１の情報に従って、プロセッサ＃１に対してのみ障害が発生したことを割り込み制御回路１４によって通知する。
【００２８】
また、領域Ｅで障害が発生したとすると、記憶制御回路１２は、制御レジスタ１３０〜１３ｎを参照し、領域Ｅを使用しているマイクロプロセッサを特定する。図３の例では、制御レジスタ１３０、１３２の内容からプロセッサ＃０、＃２（マイクロプロセッサ２０、２２）がこの条件にあてはまる。記憶制御回路１２は、制御レジスタ１３０、１３２の情報に従って、プロセッサ＃０、＃２に対して障害が発生したことを割り込み制御回路１４によって通知する。
【００２９】
主記憶部１１内の使用中の記憶領域に障害が発生したことを割り込みにより通知されたマイクロプロセッサは、所定の障害処理を実行する。
【００３０】
以上のようにマルチプロセッサシステムは動作し、主記憶装置１０に障害が発生した場合、主記憶装置１０の記憶空間中の障害の発生した領域を使用しているプロセッサのみに、障害が発生したことを選択的に通知する。したがって、障害が発生した記憶空間を使用しているマイクロプロセッサのみに障害の波及範囲が限定されることとなる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施形態に係るマルチプロセッサシステムの構成を表すブロック図である。
【図２】本発明の実施例に係る主記憶装置の構成を表すブロック図である。
【図３】本発明の実施例に係る制御レジスタ群の設定例を示す図である。
【符号の説明】
【００３２】
１０  主記憶装置
１１  主記憶部
１２  記憶制御回路
１３  制御レジスタ群
１３０〜１３ｎ  制御レジスタ
１４  割り込み制御回路
１５  アドレスレジスタ
２０〜２ｎ  マイクロプロセッサ
３０  割り込み信号線
３１  システムバス
【図１】
2005234744.tif 000003
【図２】
2005234744.tif 000004
【図３】
2005234744.tif 000005