(57)【要約】【課題】ライトバック方式キャッシュメモリを搭載したプロセッサをバス接続したマルチプロセッサシステムにおいて、プロセッサのアーキテクチャを変更することなく、ライトバック時に障害が発生した際、ライトバックを発行したプロセッサを特定して障害処理を行う。【解決手段】ライトバック方式キャッシュメモリを有する複数のプロセッサ３，４，５と、複数のプロセッサ３，４，５において発生するライトバックの障害処理を行うシステムコントローラ１とがシステムバス６に接続されたマルチプロセッサシステムにおいて、システムコントローラ１は、各プロセッサ３，４，５について、システムバス６へ発行されたメモリ読み出し命令に対応するキャッシュラインの状態を保持するキャッシュライン状態保持回路９，１０，１１を有している。【選択図】    図１
2005010995.tif 000002
【特許請求の範囲】
【請求項１】
ライトバック方式キャッシュメモリを有する複数のプロセッサと、前記複数のプロセッサにおいて発生するライトバックの障害処理を行うシステムコントローラとがシステムバスに接続されたマルチプロセッサシステムにおいて、前記システムコントローラは、各プロセッサについて、前記システムバスへ発行されたメモリ読み出し命令に対応するキャッシュラインの状態を保持するキャッシュライン状態保持回路を有することを特徴とするマルチプロセッサシステム。
【請求項２】
ライトバック方式キャッシュメモリを有する複数のプロセッサと、システムコントローラとがシステムバスに接続されたマルチプロセッサシステムのライトバックの障害処理方法において、前記システムバスに接続される全てのプロセッサが前記システムバスへ発行されたメモリ読み出し命令に対応するキャッシュラインの状態確認を行う第１のステップと、前記キャッシュラインをダーティ状態で保持していたプロセッサが、前記システムコントローラに前記キャッシュラインの状態がダーティ状態であることを保持させる第２のステップと、前記キャッシュラインをダーティ状態で保持していたプロセッサが、前記キャッシュラインを前記メモリ読み出し命令を発行したプロセッサと前記システムコントローラとへ転送する第３のステップと、前記システムコントローラが、前記第３のステップで障害が発生したことを検出すると各プロセッサについて保持するキャッシュ状態を確認し前記キャッシュラインをダーティ状態で保持していたプロセッサを停止する第４のステップとを有することを特徴とするマルチプロセッサシステムのライトバックの障害処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ライトバック方式キャッシュメモリを搭載したプロセッサをバス接続したマルチプロセッサシステム及びそのライトバックの障害処理方法に関するものである。
【０００２】
【従来の技術】
従来、ライトバック方式キャッシュメモリを搭載したプロセッサをバス接続したマルチプロセッサシステムでは、図４に示すように各プロセッサ４１，４２，４３においてキャッシュラインを書き換えた状態で保持していることを示すダーティヒット信号４５をワイヤードオア接続していたため、ライトバック時に障害が発生したプロセッサを特定することができなかった。すなわち、１つのプロセッサがダーティ状態で保持しているキャッシュラインが、メモリ読み出し命令をシステムバス４４に発行したプロセッサとシステムコントローラ４６へ自動的に転送されるインプリシットライトバックで障害が発生した場合、システムをシャットダウンしていた。
【０００３】
システムの可用性を向上させるためには、ライトバック時に障害が発生した際、ライトバックを発行したプロセッサを特定する必要がある。障害が発生したプロセッサを特定するための簡単な方法としては、インプリシットライトバック命令にプロセッサ番号を含める方法や、障害検出用にプロセッサからダーティヒット信号を別に出力する方法が考えられる。
【０００４】
例えば、個々のプロセッサの内部に障害のレベルを判定する障害処理ユニットを設け、ライトバック方式のＬ２キャッシュを制御するＬ２キャッシュ制御ユニットやバスインターフェースユニット等が健全でスヌープ処理が続行可能な場合には、障害のプロセッサ内部ではプロセッサリセットに関係なくスヌープ処理を継続させ、特定のプロセッサの障害にてＬ２キャッシュ間のコヒーレンシが損なわれることによるシステムダウンを回避するものがある（たとえば特許文献１参照）。
【特許文献１】
特開２０００−１８１８８９号公報
【０００５】
【発明が解決しようとする課題】
しかしながら上述のインプリシットライトバック命令にプロセッサ番号を含める方法や、障害検出用にプロセッサからダーティヒット信号を別に出力する方法では、プロセッサのアーキテクチャの変更が必要となる。アーキテクチャの変更は、従来プロセッサとの互換性を保つ上で問題となり、対応するために新たな開発が必要となる。
【０００６】
本発明は、ライトバック方式キャッシュメモリを搭載したプロセッサをバス接続したマルチプロセッサシステムにおいて、プロセッサのアーキテクチャを変更することなく、ライトバック時に障害が発生した際、ライトバックを発行したプロセッサを特定して障害処理を行うマルチプロセッサシステム及びそのライトバックの障害処理方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明のマルチプロセッサシステムは、ライトバック方式キャッシュメモリを有する複数のプロセッサ（図１の３，４，５）と、複数のプロセッサ（図１の３，４，５）において発生するライトバックの障害処理を行うシステムコントローラ（図１の１）とがシステムバス（図１の６）に接続されたマルチプロセッサシステムにおいて、システムコントローラ（図１の１）は、各プロセッサ（図１の３，４，５）について、システムバス（図１の６）へ発行されたメモリ読み出し命令に対応するキャッシュラインの状態を保持するキャッシュライン状態保持回路（図１の９，１０，１１）を有している。
【０００８】
例えば第１プロセッサ（図１の３）が、あるメモリアドレスのデータを書き換える際、メモリ読み出し命令（以下、ロード命令という）をシステムバス（図１の６）へ発行する。ロード命令がシステムバス（図１の６）に発行されると、システムバス（図１の６）に接続された全プロセッサがプロセッサのキャッシュライン状態確認（以下、スヌープという）を行う。例えば、第２プロセッサ（図１の４）が、キャッシュラインを書き換えた状態（以下、ダーティ状態という）で保持しているとすると、第２プロセッサ（図１の４）は、キャッシュラインをダーティ状態で保持していることを示す信号（以下、ダーティーヒット信号という）を出力する。そのとき、第２プロセッサキャッシュ状態保持回路（図１の１０）へ第２プロセッサのキャッシュライン状態を保持する。その後、第２プロセッサがダーティ状態で保持しているキャッシュラインが、第１プロセッサ（図１の３）とシステムコントローラ（図１の１）へ自動的に転送される（以下、インプリシットライトバックという）。第２プロセッサ（図１の４）から転送されたインプリシットライトバックで障害（例えば、ＥＣＣの２ビットエラー）が発生した場合、障害検出回路（図１の７）で障害を検出し、第２プロセッサ停止回路（図１の１３）により第２プロセッサを停止する。
【０００９】
【発明の実施の形態】
次に図面を参照して本発明の実施例について説明する。図１は本発明のマルチプロセッサシステムの一実施例の構成を示すブロック図である。
【００１０】
図１を参照すると、マルチプロセッサシステムは、第１プロセッサ３、第２プロセッサ４、第３プロセッサ５は、それぞれライトバック方式キャッシュメモリを内蔵し、システムバス６を介してシステムコントローラ１に接続される。
【００１１】
第１プロセッサ３、第２プロセッサ４、第３プロセッサ５は、それぞれダーティヒット信号制御回路２に接続され、ダーティヒット信号制御回路２は、プロセッサから出力されたダーティヒット信号のＯＲ論理を取って、別のプロセッサへ出力する。例えば、第１プロセッサ３がダーティヒット信号を出力した場合、第２プロセッサ４、第３プロセッサ５へ出力する。
【００１２】
第１プロセッサキャッシュ状態保持回路９は、第１プロセッサ３のダーティヒット信号の状態をスヌープ時に保持する。第２プロセッサキャッシュ状態保持回路１０、第３プロセッサキャッシュ状態保持回路１１も同様に、第２プロセッサ４、第３プロセッサ５のダーティヒット信号の状態をスヌープ時に保持する。
【００１３】
障害検出回路７は、インプリシットライトバックのデータをチェックし、障害が発生していた場合、第１プロセッサ停止回路１２、第２プロセッサ停止回路１３、第３プロセッサ停止回路１４へ障害発生を通知する。障害が発生していない場合は、メモリ８へデータを書き込む。
【００１４】
第１プロセッサ停止回路１２は、第１プロセッサキャッシュ状態保持回路９の保持情報と障害検出回路７の通知内容から、第１プロセッサ３の停止信号を生成し、第１プロセッサ３を制御する。第２プロセッサ停止回路１３、第３プロセッサ停止回路１４も同様に、第２プロセッサ４、第３プロセッサ５を制御する。
【００１５】
ダーティヒット信号制御回路２は、入力バッファ２１、２４、２７、出力バッファ２３、２６、２９、レジスタ２２、２５、２８、ＯＲ回路２０により構成され、第１プロセッサ３から出力されたダーティヒット信号を、それぞれ対応した入力バッファ２１から入力し、レジスタ２２で１クロック受け、レジスタ２２の出力信号をＯＲ回路２０へ入力する。第２プロセッサ４は、入力バッファ２４、レジスタ２５を使用し、第３プロセッサ５は、入力バッファ２７、レジスタ２８を使用する。ＯＲ回路２０は出力バッファ２３、２６、２９へ接続され、出力バッファ２３は第１プロセッサ３へ、出力プロセッサ２６は第２プロセッサ４へ、出力プロセッサ２９は第３プロセッサ５へ接続される。
【００１６】
次に、図１の動作について、説明する。
【００１７】
ライトバック方式キャッシュメモリを搭載したプロセッサをバス接続したマルチプロセッサシステムでは、ロード命令がシステムバス６に発行されると、数クロック後に、システムバスに接続された全てのプロセッサがスヌープを行う。なお、ロード命令がシステムバス６に発行されてからスヌープが行われるまでの時間は、プロセッサに内蔵されたキャッシュメモリのアクセス速度に依存する。
【００１８】
スヌープの際、ロード命令で指定されたアドレスのメモリ領域をダーティ状態でキャッシュメモリにキャッシュしているプロセッサは、ダーティヒット信号を出力する。それ以外のプロセッサは、スヌープ時にダーティヒット信号の状態により、システムバス６に接続されているプロセッサのいずれかがダーティ状態でキャッシュメモリにキャッシュされていることを知ることができる。
【００１９】
システムバス６に接続されたプロセッサのどれかがスヌープ時にダーティヒット信号を出力した場合、ダーティ状態でキャッシュメモリにキャッシュしていたプロセッサによりインプリシットライトバックが発行され、ロード命令を発行したプロセッサと、システムコントローラ１が、インプリシットライトバックのデータを受け取る。
【００２０】
ここでは、第１プロセッサ３がロード命令を発行し、第２プロセッサ４が第１プロセッサ３が必要とするメモリ領域をダーティ状態でキャッシュメモリにキャッシュしているものとして説明する。
【００２１】
図２は、図１の動作を示すタイミングチャートである。図２を参照すると、Ｔ０〜Ｔ１において、第１プロセッサ３がロード命令をシステムバス６に発行する。
【００２２】
システムバス６にロード命令が発行されると、システムバスに接続された全てのプロセッサは、Ｔ２〜Ｔ４でスヌープを行う。第２プロセッサ４がキャッシュメモリにダーティ状態でキャッシュしているため、第２プロセッサ４はＴ２〜Ｔ４において、ダーティヒット信号を出力する。出力されたダーティヒット信号は、ダーティヒット信号制御回路２に入力され、入力バッファ２４を通って、Ｔ３のタイミングで第２プロセッサキャッシュ状態保持回路１０に保持されると同時に、レジスタ２５に入力される。レジスタ２５の出力信号は、ＯＲ回路２０で論理ＯＲされ、出力バッファ２３、出力バッファ２９を通って、第１プロセッサ３と第３プロセッサ５へ出力される。
【００２３】
Ｔ５〜Ｔ７において、システムバス６に第２プロセッサ４がインプリシットライトバックを発行し、ライトバックデータは第１プロセッサ３とシステムコントローラ１が受け取る。システムコントローラ１は、障害検出回路７で受け取ったデータをチェックし、障害が発生していなければメモリ８へ書き込む。
【００２４】
Ｔ６のタイミングで障害が発生している場合、メモリ８へのデータの書き込みは行わず、第１プロセッサ停止回路１２、第２プロセッサ停止回路１３、第３プロセッサ停止回路１４へ障害発生を通知する。第２プロセッサ停止回路１３は、第２プロセッサキャッシュ状態保持回路１０の出力信号と、障害検出回路７の通知により停止信号を出力し、第２プロセッサ４を停止する。
【００２５】
以上説明したように本発明によればインプリシットライトバックを発行したプロセッサを特定することで、障害発生箇所の検出精度を向上し、システムの可用性を向上させることができる。
【００２６】
なお、図１では、プロセッサはシステムバス６に３個接続されている例を示しているが、システムバス６に接続されるプロセッサ数が増加した場合、ダーティヒット信号制御回路２内の入力バッファ、出力バッファ、レジスタおよび、プロセッサ状態保持回路、プロセッサ停止回路をプロセッサ数に応じて増加させることで、４個以上のプロセッサに対応可能である。
【００２７】
また、プロセッサが同時に複数個の命令を処理できる場合、ロード命令が複数個連続してシステムバス６に発行される。その場合、スヌープがシステムバス６で複数回連続して行われる。そうした動作の場合、上述の構成では、スヌープの結果を１回分しか保持できないと、スヌープとライトバックの整合が取れなくなる。このような課題に対応するため、第１プロセッサキャッシュ状態保持回路９、第２プロセッサキャッシュ状態保持回路１０、第３プロセッサキャッシュ状態保持回路１１をそれぞれＦＩＦＯ構造とすることが好ましい。
また、図３に示すように、プロセッサ停止回路とプロセッサの間に障害状態保持回路３０を設けてもよい。本実施例においては、障害状態保持回路３０は、不揮発性メモリなど電源を切断しても状態が保持可能なもので構成され、プロセッサ停止回路の出力信号の状態を保持する。このように、プロセッサの障害状態を外部の障害状態保持回路３０に記憶し、その出力信号によりプロセッサを停止することで、システムの再起動時に障害が発生したプロセッサを切り離して起動することが可能となる。この実施例により、障害の発生したプロセッサが再びシステムに組み込まれることが無くなり、システムの信頼性が向上する。
【００２８】
【発明の効果】
以上説明したように、本発明によれば、インプリシットライトバックを発行したプロセッサを特定することで、障害発生箇所の検出精度を向上し、システムの可用性を向上させることができる。
【図面の簡単な説明】
【図１】本発明のマルチプロセッサシステムの一実施例の構成を示すブロック図である。
【図２】図１の動作を示すタイミングチャートである。
【図３】本発明の他の実施例の構成を示すブロック図である。
【図４】従来のマルチプロセッサシステムの構成を示すブロック図である。
【符号の説明】
１，４６  システムコントローラ
２  ダーティヒット信号制御回路
３，４，５，４１，４２，４３  プロセッサ
６，４４  システムバス
７，４７  障害検出回路
８，４８  メモリ
９，１０，１１  プロセッサキャッシュ状態保持回路
１２，１３，１４  プロセッサ停止回路
２０  ＯＲ回路
２１，２４，２７  入力バッファ
２２，２５，２８  バッファ
２３，２６，２９  出力バッファ
３０  障害状態保持回路
４５  ダーティヒット信号
【図１】
2005010995.tif 000003
【図２】
2005010995.tif 000004
【図３】
2005010995.tif 000005
【図４】
2005010995.tif 000006