(57)【特許請求の範囲】
【請求項１】
キャッシュメモリで処理される主記憶アドレスを保持する主記憶アドレスレジスタと、前記キャッシュメモリで更新される更新データの前記主記憶アドレスを保持する更新アドレス記憶機構と、前記主記憶アドレスレジスタの値と前記更新データの前記主記憶アドレスを保持している前記更新アドレス記憶機構の値を比較するアドレス比較機構と、更新アドレス記憶制御機構を有し、前記更新アドレス記憶制御機構は前記キャッシュメモリの前記更新データの前記主記憶アドレスを示す前記主記憶アドレスレジスタの値と前記キャッシュメモリの更新により前記キャッシュメモリの前記更新データの前記主記憶アドレスを前記更新アドレス記憶機構に登録し、前記キャッシュメモリから前記主記憶への前記更新データの書き戻しにより前記更新データ書き戻しの前記主記憶アドレスを示す前記主記憶アドレスレジスタの値と前記更新アドレス記憶機構が保持するアドレス値を前記アドレス比較機構を用いて比較し、一致した前記更新アドレス記憶機構に保持するアドレス値を削除し、外部からの要求により前記更新アドレス記憶機構に保持する値を出力するストアイン方式のキャッシュメモリを有する複数のプロセッサと、主記憶をバスで接続し、前記キャッシュメモリの障害を検出する障害検出手段と、前記障害検出手段により前記キャッシュメモリの障害が検出されたときに前記キャッシュメモリの障害を有する前記プロセッサからの要求により前記更新アドレス記憶機構に保持する値を出力するアドレス出力手段と、前記アドレス出力手段から出力された値のアドレスをもつキャッシュラインを前記主記憶へ書き戻す書き戻し手段とを有し、前記更新アドレス記憶機構に保持するアドレスがすべて前記主記憶へ書き戻されたことを確認する確認手段と、前記確認手段により前記戻しがすべて前記主記憶へ書き戻された時に前記複数のプロセッサの運転を継続する運転継続手段と、前記確認手段により前記書き戻しがすべて前記主記憶へ書き戻されない時に前記複数のプロセッサを停止する運転停止手段を備えることを特徴とするキャッシュメモリの障害処理装置。
【請求項２】
キャッシュメモリで処理される主記憶アドレスを保持する主記憶アドレスレジスタと、前記キャッシュメモリで更新される更新データの前記主記憶アドレスを保持する更新アドレス記憶機構と、前記主記憶アドレスレジスタの値と前記更新データの前記主記憶アドレスを保持している前記更新アドレス記憶機構の値を比較するアドレス比較機構と、更新アドレス記憶制御機構を有し、前記更新アドレス記憶制御機構は前記キャッシュメモリの前記更新データの前記主記憶アドレスを示す前記主記憶アドレスレジスタの値と前記キャッシュメモリの更新により前記キャッシュメモリの前記更新データの前記主記憶アドレスを前記更新アドレス記憶機構に登録し、前記キャッシュメモリから前記主記憶への前記更新データの書き戻しにより前記更新データ書き戻しの前記主記憶アドレスを示す前記主記憶アドレスレジスタの値と前記更新アドレス記憶機構が保持するアドレス値を前記アドレス比較機構を用いて比較し、一致した前記更新アドレス記憶機構に保持するアドレス値を削除し、外部からの要求により前記更新アドレス記憶機構に保持する値を出力するストアイン方式のキャッシュメモリを有する複数のプロセッサ、入出力制御装置と、主記憶をバスで接続し、前記キャッシュメモリの障害を検出する第一手順と、前記第一の手順により前記キャッシュメモリの障害が検出されたときに前記キャッシュメモリの障害を有する前記プロセッサからの要求により前記更新アドレス記憶機構に保持する値を出力する第二の手順と、前記アドレス出力手順から出力された値のアドレスをもつキャッシュラインを主記憶へ書き戻す第三の手順と、前記更新アドレス記憶機構に保持するアドレスがすべて前記主記憶へ書き戻されたことを確認する第四の手順と、前記確認手順により前記戻しがすべて前記主記憶へ書き戻された時に前記複数のプロセッサの運転を継続する第五の手順と、前記確認手順により前記書き戻しがすべて前記主記憶へ書き戻されない時に前記複数のプロセッサを停止する第六の手順を備えることを特徴とするキャッシュメモリの障害処理方法。
【請求項３】
キャッシュメモリで処理される主記憶アドレスを保持する更新状態記憶ポインタと、主記憶アドレス毎のデータ更新状態を記憶する複数の更新状態記憶エントリを有し前記主記憶の更新状態情報を記憶する更新状態記憶機構と、更新状態記憶制御機構を有し、前記更新状態記憶制御機構は前記キャッシュメモリのデータ更新動作を示すキャッシュメモリ更新信号とその時の前記キャッシュメモリでアクセス処理する前記主記憶アドレスを保持している前記更新状態記憶ポインタで指される前記主記憶アドレスに対応する前記更新状態記憶エントリを更新済みと設定し、前記キャッシュメモリから前記主記憶への更新データ書き戻し動作を示すキャッシュメモリ無効化信号を受けることにより前記主記憶アドレスを保持している前記更新状態記憶ポインタで指される前記更新状態記憶機構の前記更新状態記憶エントリを更新無しと設定し、外部からの出力要求により前記更新状態記憶機構内の前記更新状態記憶エントリに保持する前記更新状態情報を出力するストアイン方式のキャッシュメモリを有する複数のプロセッサと、主記憶をバスで接続し、前記キャッシュメモリの障害を検出する障害検出手段と、前記障害検出手段により前記キャッシュメモリの障害が検出されたときに前記キャッシュメモリの障害を有する前記プロセッサからの要求により前記更新状態記憶ポインタ記憶に保持する値を出力するポインタ出力手段と、前記ポインタ出力手段から出力された値のポインタをもつキャッシュラインを主記憶へ書き戻す書き戻し手段とを有し、前記更新状態記憶ポインタに保持するポインタがすべて前記主記憶へ書き戻されたことを確認する確認手段と、前記確認手段により前記戻しがすべて前記主記憶へ書き戻された時に前記複数のプロセッサの運転を継続する運転継続手段と、前記確認手段により前記書き戻しがすべて前記主記憶へ書き戻されない時に前記複数のプロセッサを停止する運転停止手段を備えることを特徴とするキャッシュメモリの障害処理装置。
【請求項４】
キャッシュメモリで処理される主記憶アドレスを保持する更新状態記憶ポインタと、主記憶アドレス毎のデータ更新状態を記憶する複数の更新状態記憶エントリを有し前記主記憶の更新状態情報を記憶する更新状態記憶機構と、更新状態記憶制御機構を有し、前記更新状態記憶制御機構は前記キャッシュメモリのデータ更新動作を示すキャッシュメモリ更新信号とその時の前記キャッシュメモリでアクセス処理する前記主記憶アドレスを保持している前記更新状態記憶ポインタで指される前記主記憶アドレスに対応する前記更新状態記憶エントリを更新済みと設定し、前記キャッシュメモリから前記主記憶への更新データ書き戻し動作を示すキャッシュメモリ無効化信号を受けることにより前記主記憶アドレスを保持している前記更新状態記憶ポインタで指される前記更新状態記憶機構の前記更新状態記憶エントリを更新無しと設定し、外部からの出力要求により前記更新状態記憶機構内の前記更新状態記憶エントリに保持する前記更新状態情報を出力するストアイン方式のキャッシュメモリを有する複数のプロセッサと、主記憶をバスで接続し、前記キャッシュメモリの障害を検出する第一手順と、前記第一の手順により前記キャッシュメモリの障害が検出されたときに前記キャッシュメモリの障害を有する前記プロセッサからの要求により前記更新状態記憶ポインタに保持する値を出力する第二の手順と、前記ポインタ出力手順から出力された値のポインタをもつキャッシュラインを主記憶へ書き戻す第三の手順と、前記更新状態記憶ポインタに保持するポインタがすべて前記主記憶へ書き戻されたことを確認する第四の手順と、前記確認手順により前記書き戻しがすべて前記主記憶へ書き戻された時に前記複数のプロセッサの運転を継続する第五の手順と、前記確認手順により前戻しがすべて前記主記憶へ書き戻されない時に前記複数のプロセッサを停止する第六の手順を備えることを特徴とするキャッシュメモリの障害処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主記憶書き込み動作で主記憶データの更新を行わずキャッシュメモリに保持するデータの更新のみ行うストアイン方式のキャッシュメモリを有するマルチプロセッサにおける障害処理に関し、特にキャッシュメモリ障害時のキャッシュ内データの障害処理に関する。
【０００２】
【従来の技術】
従来、ストアインキャッシュ方式のキャッシュメモリ障害処理システムでは、ハードウェアの故障により不正なデータをリード／ライトしシステム全体でのデータの一貫性が保証できなくなることでシステムを停止することを防止するため、書き込み動作時のライトデータのパリティエラーチェックや障害発生後のキャッシュメモリ内容の掃き出し除去により、キャッシュメモリ障害による主記憶内容不正防止を図りキャッシュメモリ障害時のシステム停止の可能性を低減しシステムの信頼性の向上を行っていた。
【０００３】
特開平８−２８６９７７号公報「ストアインキャッシュの障害処理システム」では、ライトデータのパリティエラー検出時エラーをプロセッサに通知し、該当データを２ビットエラーの形でキャッシュメモリに登録しプロセッサ側から処理できるようにし、またライトアドレスのパリティエラー検出時は出力要求をマスクし不正にキャッシュメモリにライトされることを抑止することによりキャッシュメモリ障害検出時のシステム停止の可能性を低減する、という技術が開示されている。
【０００４】
特開平９−１４６８３６号公報「キャッシュ索引の障害訂正装置」では、ストアイン方式のキャッシュメモリのアドレスアレイから読み出したデータに障害を検出した時、当該アドレスをキャッシュメモリから追い出し当該アドレスについてアドレスアレイの無効化を行う。この間障害検出の要因となったリクエストの処理は、この無効化処理が終了するまで保留し、再度のキャッシュ索引に使用することによりキャッシュメモリ障害検出時のシステム停止の可能性を低減する、という技術が開示されている。
【０００５】
【発明が解決しようとする課題】
第１の問題点は、従来技術においてストアイン方式キャッシュメモリにて、主記憶へのライトデータがキャッシュメモリの障害発生によりキャッシュメモリ上のデータアレイに書き込めない場合はプロセッサへのライトデータのパリティエラー報告となるが、リードデータがキャッシュメモリの障害発生により読み出せず読み出しデータがキャッシュメモリ上の更新データの場合、データの復元が行われずデータ喪失となるためシステムを停止しなければならない場合がありシステムの稼働率が悪化するという問題があった。
【０００６】
その理由は、ストアイン方式のキャッシュメモリの場合、ライトデータは一時キャッシュメモリのみに存在し実際の主記憶への書き戻しはプロセッサの書き込み指示とは非同期に遅延して行われるため、主記憶への書き戻し前に当該キャッシュメモリの障害が発生し主記憶に書き込むべきデータがキャッシュメモリ上に残ると、ライトデータを主記憶上に復元できずデータ喪失となる。
【０００７】
第２の問題点は、従来技術においてストアイン方式キャッシュメモリにて、キャッシュメモリ上のアドレスアレイからの読み出しデータにパリティエラーを検出した場合、再度キャッシュ索引を行うことによりキャッシュ障害訂正をおこなえるが、キャッシュメモリ上のデータアレイに障害が発生しデータの読み出しおよび主記憶への書き戻しができない場合、キャッシュメモリ上の更新データの喪失となるためシステムを停止しなければならない場合がありシステムの稼働率が悪化するという問題があった。
【０００８】
その理由は、ストアイン方式のキャッシュメモリの場合、プロセッサの書き込み指示で更新されたキャッシュメモリ上のデータアレイ中のデータは一時的にキャッシュメモリのみ存在し実際の主記憶への書き戻しは非同期に遅延して行われるため、主記憶への書き戻し前に当該キャッシュメモリの障害が発生し主記憶に書き込むべきデータがキャッシュメモリ上に残ると、データアレイ中のデータを復元できずデータ喪失となる。
【０００９】
【課題を解決するための手段】
本発明第一のキャッシュ障害処理装置は、キャッシュメモリで処理される主記憶アドレスを保持する主記憶アドレスレジスタと、前記キャッシュメモリで更新される更新データの前記主記憶アドレスを保持する更新アドレス記憶機構と、前記主記憶アドレスレジスタの値と前記更新データの前記主記憶アドレスを保持している前記更新アドレス記憶機構の値を比較するアドレス比較機構と、更新アドレス記憶制御機構を有し、前記更新アドレス記憶制御機構は前記キャッシュメモリの前記更新データの前記主記憶アドレスを示す前記主記憶アドレスレジスタの値と前記キャッシュメモリの更新により前記キャッシュメモリの前記更新データの前記主記憶アドレスを前記更新アドレス記憶機構に登録し、前記キャッシュメモリから前記主記憶への前記更新データの書き戻しにより前記更新データ書き戻しの前記主記憶アドレスを示す前記主記憶アドレスレジスタの値と前記更新アドレス記憶機構が保持するアドレス値を前記アドレス比較機構を用いて比較し、一致した前記更新アドレス記憶機構に保持するアドレス値を削除し、外部からの要求により前記更新アドレス記憶機構に保持する値を出力するストアイン方式のキャッシュメモリを有する複数のプロセッサと、主記憶をバスで接続し、前記キャッシュメモリの障害を検出する障害検出手段と、前記障害検出手段により前記キャッシュメモリの障害が検出されたときに前記キャッシュメモリの障害を有する前記プロセッサからの要求により前記更新アドレス記憶機構に保持する値を出力するアドレス出力手段と、前記アドレス出力手段から出力された値のアドレスをもつキャッシュラインを前記主記憶へ書き戻す書き戻し手段とを有し、前記更新アドレス記憶機構に保持するアドレスがすべて前記主記憶へ書き戻されたことを確認する確認手段と、前記確認手段により前記書き戻しがすべて前記主記憶へ書き戻された時に前記複数のプロセッサの運転を継続する運転継続手段と、前記確認手段により前戻しがすべて前記主記憶へ書き戻されない時に前記複数のプロセッサを停止する運転停止手段を備える。
【００１２】
本発明第二のキャッシュ障害処理装置は、キャッシュメモリで処理される主記憶アドレスを保持する更新状態記憶ポインタと、主記憶アドレス毎のデータ更新状態を記憶する複数の更新状態記憶エントリを有し前記主記憶の更新状態情報を記憶する更新状態記憶機構と、更新状態記憶制御機構を有し、前記更新状態記憶制御機構は前記キャッシュメモリのデータ更新動作を示すキャッシュメモリ更新信号とその時の前記キャッシュメモリでアクセス処理する前記主記憶アドレスを保持している前記更新状態記憶ポインタで指される前記主記憶アドレスに対応する前記更新状態記憶エントリを更新済みと設定し、前記キャッシュメモリから前記主記憶への更新データ書き戻し動作を示すキャッシュメモリ無効化信号を受けることにより前記主記憶アドレスを保持している前記更新状態記憶ポインタで指される前記更新状態記憶機構の前記更新状態記憶エントリを更新無しと設定し、外部からの出力要求により前記更新状態記憶機構内の前記更新状態記憶エントリに保持する前記更新状態情報を出力するストアイン方式のキャッシュメモリを有する複数のプロセッサと、主記憶をバスで接続し、前記キャッシュメモリの障害を検出する障害検出手段と、前記障害検出手段により前記キャッシュメモリの障害が検出されたときに前記キャッシュメモリの障害を有する前記プロセッサからの要求により前記更新状態記憶ポインタ記憶に保持する値を出力するポインタ出力手段と、前記ポインタ出力手段から出力された値のポインタをもつキャッシュラインを主記憶へ書き戻す書き戻し手段とを有し、前記更新状態記憶ポインタに保持するポインタがすべて前記主記憶へ書き戻されたことを確認する確認手段と、前記確認手段により前記書き戻しがすべて前記主記憶へ書き戻された時に前記複数のプロセッサの運転を継続する運転継続手段と、前記確認手段により前戻しがすべて前記主記憶へ書き戻されない時に前記複数のプロセッサを停止する運転停止手段を備える。
【００１３】
本発明第一のキャッシュ障害処理方法は、キャッシュメモリで処理される主記憶アドレスを保持する主記憶アドレスレジスタと、前記キャッシュメモリで更新される更新データの前記主記憶アドレスを保持する更新アドレス記憶機構と、前記主記憶アドレスレジスタの値と前記更新データの前記主記憶アドレスを保持している前記更新アドレス記憶機構の値を比較するアドレス比較機構と、更新アドレス記憶制御機構を有し、前記更新アドレス記憶制御機構は前記キャッシュメモリの前記更新データの前記主記憶アドレスを示す前記主記憶アドレスレジスタの値と前記キャッシュメモリの更新により前記キャッシュメモリの前記更新データの前記主記憶アドレスを前記更新アドレス記憶機構に登録し、前記キャッシュメモリから前記主記憶への前記更新データの書き戻しにより前記更新データ書き戻しの前記主記憶アドレスを示す前記主記憶アドレスレジスタの値と前記更新アドレス記憶機構が保持するアドレス値を前記アドレス比較機構を用いて比較し、一致した前記更新アドレス記憶機構に保持するアドレス値を削除し、外部からの要求により前記更新アドレス記憶機構に保持する値を出力するストアイン方式のキャッシュメモリを有する複数のプロセッサ、入出力制御装置と、主記憶をバスで接続し、キャッシュの障害を検出する第一手順と、前記第一の手順により前記キャッシュの障害が検出されたときに前記キャッシュメモリの障害を有する前記プロセッサからの要求により前記更新アドレス記憶機構に保持する値を出力する第二の手順と、前記アドレス出力手順から出力された値のアドレスをもつキャッシュラインを主記憶へ書き戻す第三の手順と、前記更新アドレス記憶機構に保持するアドレスがすべて前記主記憶へ書き戻されたことを確認する第四の手順と、前記確認手順により前記戻しがすべて前記主記憶へ書き戻された時に前記複数のプロセッサの運転を継続する第五の手順と、前記確認手順により前記書き戻しがすべて前記主記憶へ書き戻されない時に前記複数のプロセッサを停止する第六の手順を備える。
【００１４】
本発明第二のキャッシュ障害処理方法は、キャッシュメモリで処理される主記憶アドレスを保持する更新状態記憶ポインタと、主記憶アドレス毎のデータ更新状態を記憶する複数の更新状態記憶エントリを有し前記主記憶の更新状態情報を記憶する更新状態記憶機構と、更新状態記憶制御機構を有し、前記更新状態記憶制御機構は前記キャッシュメモリのデータ更新動作を示すキャッシュメモリ更新信号とその時の前記キャッシュメモリでアクセス処理する前記主記憶アドレスを保持している前記更新状態記憶ポインタで指される前記主記憶アドレスに対応する前記更新状態記憶エントリを更新済みと設定し、前記キャッシュメモリから前記主記憶への更新データ書き戻し動作を示すキャッシュメモリ無効化信号を受けることにより前記主記憶アドレスを保持している前記更新状態記憶ポインタで指される前記更新状態記憶機構の前記更新状態記憶エントリを更新無しと設定し、外部からの出力要求により前記更新状態記憶機構内の前記更新状態記憶エントリに保持する前記更新状態情報を出力するストアイン方式のキャッシュメモリを有する複数のプロセッサと、主記憶をバスで接続し、キャッシュの障害を検出する第一手順と、前記第一の手順により前記キャッシュの障害が検出されたときに前記キャッシュメモリの障害を有する前記プロセッサからの要求により前記更新状態記憶ポインタに保持する値を出力する第二の手順と、前記ポインタ出力手順から出力された値のポインタをもつキャッシュラインを主記憶へ書き戻す第三の手順と、前記更新状態記憶ポインタに保持するポインタがすべて前記主記憶へ書き戻されたことを確認する第四の手順と、前記確認手順により前記書き戻しがすべて前記主記憶へ書き戻された時に前記複数のプロセッサの運転を継続する第五の手順と、前記確認手順により前戻しがすべて前記主記憶へ書き戻されない時に前記複数のプロセッサを停止する第六の手順を備える。
【００１５】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
図１は、本発明の実施の形態の適用されるマルチプロセッサシステムの構成を示すブロック図である。
【００１７】
このマルチプロセッサシステムは、３つの中央処理装置１、主記憶８と入出力制御装置５およびそれらを相互に接続するシステムバス９から構成されている。中央処理装置１は、更新アドレス保持部３とキャッシュメモリ４を有し、キャッシュメモリ４を介してシステムバスに接続されている。プロセッサ２は、主記憶８へのデータの読み出しおよび書き込み命令を実行し、主記憶８へのメモリアクセス要求をキャッシュメモリ４に送出する。
【００１８】
次に、システムバス９上で主記憶読み出しの動作を説明する。キャッシュメモリ４がメモリにライトされるべき更新データがマルチプロセッサシステム内にただ一つ有している状態をダーティーエクスクルーシブ状態と言う。また、キャッシュメモリ４がメモリにライトされるべき更新データがマルチプロセッサシステム内のキャッシュメモリ４間で共有されている状態をダーティーシェアード状態と言う。他のプロセッサ２がダーティーエクスクルーシブ状態のキャッシュライン４９内のデータを読みだそうとするときには、主記憶８から読み出さずにダーティーエクスクルーシブ状態のキャッシュライン４９内のデータを読み出し他のプロセッサ２へ当該データを返送する。このデータを受け取った他のプロセッサ２のキャッシュライン４９はこのデータを受け取りダーティーシェアード状態となる。
【００１９】
図２は、本発明の第一の実施の形態の更新アドレス保持部３とキャッシュメモリ４の構成を示す図である。
【００２０】
キャッシュメモリ４は、キャッシュ制御部４１、キャッシュタグメモリ４３、キャッシュデータメモリ４４、キャッシュステータスメモリ４５から構成される。また、キャッシュライン４９は、対応するアドレスのキャッシュタグメモリ４３、キャッシュデータメモリ４４、キャッシュステータスメモリ４５それぞれのラインに対応するものでる。キャッシュメモリ４は、プロセッサ２からのメモリアクセス要求を受け、要求アドレスに対応するデータをキャッシュメモリ４内部に保持している場合、キャッシュメモリ４内部で読み出し書き込み処理を行い、キャッシュメモリ４内部に保持していない場合、書き込みアクセス要求はキャッシュメモリ４内部でデータ保持し、読み出しアクセス要求はシステムバス９にアクセス要求を出し、システムバス９上要求に従って主記憶８または、他のプロセッサ２のキャッシュメモリが応答しデータをシステムバス９上に出力する。システムバス９上のデータをキャッシュメモリ４に取り込んだ後要求元プロセッサ２へ返却する。キャッシュタグメモリ４３は主記憶のアドレスの一部を保持する、キャッシュデータメモリ４４は対応するアドレスのデータを保持する。キャッシュステータスメモリ４５はキャッシュメモリ４内のデータの状態つまり、バリッド、シェアード、ダーティーエクスクルーシブ等の状態を保持する。キャッシュ制御部４１は、キャッシュメモリ４の制御を行いキャッシュステータスメモリ４５を変更し、またキャッシュステータスメモリ４５の内容によりキャッシュメモリ無効化信号２５、キャッシュメモリ更新信号２４を出力する。
【００２１】
キャッシュ制御部４１は次の動作を行う。キャッシュメモリ４が正常に動作しているか適宜診断を行う。診断の結果、障害が発見されたならば、プロセッサ２に報告を行う。プロセッサ２からの指示があると、更新アドレス記憶機構２１、または更新状態記憶機構３１内に格納されている値を出力する。また他のプロセッサ２からの指示により、キャッシュメモリ４内のダーティーシェアード状態のキャッシュライン４９を主記憶８へ書き戻す。他のプロセッサ２から受け取った更新アドレス記憶機構２１、または更新状態記憶機構３１内に格納されている値と、自分のプロセッサ２に接続されている更新アドレス記憶機構２１、または更新状態記憶機構３１内に格納されている値との比較を行いすべて一致しているかどうかの検査を行う。すべて一致していた場合は、マルチプロセッサシステムの運転を継続するためにキャッシュメモリ４を切り離す。ひとつでも一致していないならば、マルチプロセッサシステムの運転を停止するために他のキャッシュ制御部４１に対して指示を出す。
【００２２】
更新アドレス保持部３は、キャッシュメモリ４で使用される主記憶アドレスを保持する主記憶アドレスレジスタ２０と、主記憶アドレスレジスタ２０の内容を記憶する複数の更新アドレス記憶エントリ２１１から構成される更新アドレス記憶機構２１と、主記憶アドレスレジスタ２０の値と更新アドレス記憶機構２１の値を比較するアドレス比較機構２２と更新アドレス記憶制御機構２３から構成されている。更新アドレス記憶制御機構２３は、キャッシュメモリ４中のデータの更新動作を示すキャッシュメモリ更新信号２４とその時の主記憶アドレスレジスタ２０の値によりキャッシュメモリの更新データの主記憶アドレスを更新アドレス記憶機構２１に登録する。また、更新アドレス記憶制御機構２３はキャッシュメモリ４から主記憶８への更新データ書き戻しの動作を示すキャッシュメモリ無効化信号２５を受けることによりこの時の主記憶アドレスレジスタ２０の値と更新アドレス記憶機構２１の値をアドレス比較機構２２を用いて比較し一致した更新アドレス記憶機構２１の中に保持する主記憶アドレスを削除する。更新アドレス記憶制御機構２３は、プロセッサからの読み出し要求であるプロセッサ読み出し信号２６により更新アドレス記憶機構２１に保持する値を出力する。
【００２３】
次に本発明の実施の形態の動作について、図３乃至７を参照して詳細に説明する。
【００２４】
図３は、本発明の実施の形態において、プロセッサ２から主記憶８を読み出す動作を示すフローチャートである。プロセッサ２は主記憶読み出し要求が生じた場合、主記憶アクセス読み出し要求と読み出し主記憶アドレスを一組として、接続されるキャッシュメモリ４へ送出する。キャッシュメモリ４は読み出し要求と読み出し主記憶アドレスを受け取り（ステップ１００）、キャッシュメモリ４内で要求読み出し主記憶アドレスと一致するアドレスを持つキャッシュライン４９をサーチする（ステップ１０１）。サーチの結果要求主記憶アドレスと一致したキャッシュライン４９が有る場合、一致したキャッシュライン４９のデータを主記憶読み出しデータとして要求元プロセッサ２に返却する（ステップ１０２）。サーチの結果要求主記憶アドレスと一致したキャッシュライン４９が無い場合、読み出しデータ登録のためキャッシュライン４９の中から新しく登録するキャッシュライン４９を選択し（ステップ１０３）、選択したキャッシュライン４９が更新されたデータを持っているかキャッシュステータスメモリ４５を参照しチェックする（ステップ１０４）。更新データを持っていない場合、選択したキャッシュライン４９の登録データのクリアを行い（ステップ１０５）、要求読み出し主記憶アドレスで主記憶８からデータを読み出し、または要求読みだしアドレスのキャッシュライン４９を所有する他のプロセッサ２に接続するキャッシュメモリ４が応答しデータを出力しする。そのデータを選択したキャッシュライン４９へ登録し（ステップ１０６）、その後登録したキャッシュライン４９のデータを要求元プロセッサ２へ返却する（ステップ１０２）。選択したキャッシュライン４９が更新データを保持している場合選択したキャッシュライン４９の現登録データを主記憶８へ書き戻し（ステップ１０７）、接続される更新アドレス保持部３へキャッシュメモリ無効化信号２５を出力する（ステップ１０８）。その後選択したキャッシュライン４９のクリア以降の動作を行う（ステップ１０５乃至１０６と１０２）。
【００２５】
図４は、本発明の実施の形態において、プロセッサ２から主記憶８へ書き込みする動作を示すフローチャートである。
【００２６】
主記憶書き込み要求が生じた場合プロセッサ２は、主記憶アクセス書き込み要求と書き込み主記憶アドレスと書き込みデータを一組として、接続されるキャッシュメモリ４へ送出する。キャッシュメモリ４では、書き込み要求と書き込み主記憶アドレスと書き込みデータを受け取り（ステップ１１０）、キャッシュメモリ４内で要求書き込み主記憶アドレスと一致するアドレスを持つキャッシュエントリ４９をサーチする（ステップ１１１）。サーチの結果要求主記憶アドレスと一致したキャッシュライン４９が有りの場合、一致したキャッシュライン４９へ書き込みデータを登録し（ステップ１１２）、更新アドレス保持部３へキャッシュメモリ更新信号２４を出力する（ステップ１１３）。サーチの結果要求主記憶アドレスと一致したキャッシュメモリ４のエントリ無しの場合、書き込みデータ登録のためキャッシュライン４９の中から新登録キャッシュライン４９を選択し（ステップ１１４）、選択したキャッシュライン４９が更新されたデータを持っているかチェックし（ステップ１１５）、更新データを持っていない場合選択したキャッシュライン４９の登録データのクリアを行う（ステップ１１６）。その後書き込みデータの登録以降の動作を行う（ステップ１１２〜１１３）。選択したキャッシュライン４９が更新データを持っている場合選択したキャッシュライン４９内のキャッシュデータメモリ４４の内容を主記憶８へ書き戻し（ステップ１１７）、接続される更新アドレス保持部３へキャッシュメモリ無効化信号２５を出力する（ステップ１１８）。その後選択したキャッシュライン４９のクリア以降の動作を行う（ステップ１１６とステップ１１２乃至１１３）。
【００２７】
図５は、本発明の実施の形態において、更新アドレス保持部３がキャッシュメモリ無効化信号２５を受信したときの動作を示すフローチャートである。キャッシュメモリ４がキャッシュメモリ無効化信号２５を出力した場合、主記憶書き戻しアドレスを、接続された更新アドレス保持部３に送出する。更新アドレス保持部３は、キャッシュメモリ４から送出された主記憶書き戻しアドレスを主記憶アドレスレジスタ２０に保持し（ステップ１２０）、更新アドレス記憶制御機構２３によって、更新アドレス記憶機構２１内で主記憶書き戻しアドレスと一致するアドレスを持つ更新アドレス記憶エントリ２１１をサーチし（ステップ１２１）、主記憶書き戻しアドレスと一致した更新アドレス記憶機構２１の更新アドレス記憶エントリ２１１の登録アドレスをクリアし（ステップ１２２）、未使用の更新アドレス記憶エントリ２１１とする（ステップ１２３）。
【００２８】
図６は、本発明の実施の形態において、更新アドレス保持部３がキャッシュメモリ更新信号２４を受信したときの動作を示すフローチャートである。キャッシュメモリ４がキャッシュメモリ更新信号２４を出力した場合、主記憶書き込みアドレスを、接続される更新アドレス保持部３へ送出する。更新アドレス保持部３は、キャッシュメモリ４から送出された書き込み主記憶アドレスを主記憶アドレスレジスタ２０に保持し（ステップ１３０）、更新アドレス記憶制御機構２３によって、更新アドレス記憶機構２１内の未使用の更新アドレス記憶エントリ２１１から新しい更新アドレス記憶エントリ２１１を選択し（ステップ１３１）、更新アドレス記憶機構２１内の選択した更新アドレス記憶エントリ２１１に更新主記憶アドレスを登録する（ステップ１３２）。
【００２９】
図７は、本発明の実施の形態において、キャッシュメモリ障害処理の動作を示すフローチャートである。キャッシュメモリ４に障害が発生し、内部に保持するデータとアドレスを取り出すことができなくなった場合、キャッシュ制御部４１に制御により次の動作を行う。障害が発生したキャッシュメモリ４と接続するプロセッサ２からのプロセッサ読み出し信号２６の出力を受けて更新アドレス記憶制御機構２３は更新アドレス記憶機構２１の各更新アドレス記憶エントリ２１１を順次選択し（ステップ１４０）、選択した更新アドレス記憶エントリ２１１内の更新主記憶アドレスを取り出し（ステップ１４３）、他プロセッサに接続するすべてのキャッシュメモリ４にて、更新アドレス記憶機構２１から取り出した更新主記憶アドレスと一致するアドレスをサーチする（ステップ１４４）。サーチの結果更新アドレス記憶機構２１から取り出した更新主記憶アドレスと一致した他プロセッサのキャッシュメモリ４のエントリ有りの場合、一致した他プロセッサのキャッシュメモリ４の更新アドレス記憶エントリ２１１のデータを主記憶に書き戻す（ステップ１４５）。更新アドレス記憶機構２１の全エントリについて、他プロセッサキャッシュメモリ４の更新アドレス記憶エントリ２１１のサーチ完了後、更新アドレス記憶機構２１の全更新アドレス記憶エントリ２１１の更新主記憶アドレスについて他プロセッサキャッシュメモリのデータによる主記憶書き戻しが完了したかどうかチェックし（ステップ１４１）、全更新主記憶アドレスについて他プロセッサキャッシュメモリによる主記憶書き戻しができた場合は、障害キャッシュメモリが保持していた更新データのデータ復旧完了（ステップ１４２）としてシステムの稼動を継続する。他プロセッサキャッシュメモリによる主記憶書き戻しができない更新主記憶アドレスを持つ更新アドレス記憶機構２１の更新アドレス記憶エントリ２１１があった場合は、障害キャッシュメモリの更新データのデータ復元の失敗（ステップ１４６）としてシステムを停止させる。
【００３０】
キャッシュメモリ４にダーティーシェアードで記憶されていて紛失してしまったデータの復元が完了しシステムの稼動が継続した場合、障害があるキャッシュメモリ４と接続するプロセッサ２は、障害があるキャッシュメモリ４を使用せず直接主記憶８とアクセスを行う。
【００３１】
次に、本発明のマルチプロセッサシステムの第二の実施の形態について、図面を参照して説明する。
【００３２】
図８は、本発明の第二の実施の形態の更新アドレス保持部３の構成を示す図である。第１の実施の形態の更新アドレス保持部３において、キャッシュメモリ４のデータ更新情報の保存形態を、更新主記憶アドレスの形態による保存から各主記憶アドレスについての更新状態情報形態による保存に変更したものである。キャッシュメモリ４で使用される主記憶アドレスを保持する更新状態記憶ポインタ３０と、主記憶アドレス毎のデータ更新状態を記憶する複数の更新状態記憶エントリ３１１を持つ更新状態記憶機構３１と、キャッシュメモリ４のデータ更新動作を示すキャッシュメモリ更新信号３３とその時のキャッシュメモリ４でアクセス処理する主記憶アドレスを保持している更新状態記憶ポインタ３０で指される主記憶アドレスに対応する更新状態記憶機構３１の記憶エリアを更新済みと設定し、キャッシュメモリ４から主記憶８への更新データ書き戻し動作を示すキャッシュメモリ無効化信号３４を受けることによりキャッシュメモリ４でアクセス処理する主記憶アドレスを保持している更新状態記憶ポインタ３０で指される更新状態記憶機構３１の更新状態記憶エントリ３１１を更新無しと設定し、プロセッサ２からの出力要求であるプロセッサ読み出し信号３５により任意の値を設定した更新状態記憶ポインタ３０で指される更新状態記憶機構３１の更新状態記憶エントリ３１１に保持する更新状態情報を出力する更新状態記憶制御機構３２を備える。
【００３３】
第２の実施の形態ではキャッシュメモリ４の更新データに対応する更新主記憶アドレスについての比較と登録と削除の動作が無くなり、主記憶アドレス毎の更新状態の設定と読み出しが行われること以外は第１の実施の形態と同様に動作する。キャッシュメモリ４からキャッシュメモリ無効化信号３４が出力された場合、キャッシュメモリ４からの主記憶書き戻しアドレスを更新状態記憶ポインタ３０に保持し、更新状態記憶制御機構３２によって、更新状態記憶ポインタ３０で指された更新状態記憶機構３１の更新状態記憶エントリ３１１を更新無しと設定する。キャッシュメモリ４からキャッシュメモリ更新信号３３が出力された場合、キャッシュメモリ４からの主記憶書き込みアドレスを更新状態記憶ポインタ３０に保持し、更新状態記憶制御機構３２によって、更新状態記憶ポインタ３０で指された更新状態記憶機構３１の更新状態記憶エントリ３１１を更新済みと設定する。または、他のプロセッサ２に接続するダーティエクスクルーシブまたはダーティシェアート状態のキャッシュメモリ４がデータを出力する応答をし、キャッシュメモリ４からキャッシュメモリ更新信号３３が出力された場合に、そのデータの主記憶書き込みアドレスを更新状態記憶ポインタ３０に保持し、更新状態記憶制御機構３２によって、更新状態記憶ポインタ３０で指された更新状態記憶機構３１の更新状態記憶エントリ３１１を更新済みと設定する。
【００３４】
キャッシュメモリ４に障害が発生し内部に保持するデータとアドレスを取り出すことができなくなった場合、キャッシュ制御部４１に制御により次の動作を行う。プロセッサからのプロセッサ読み出し信号３５の出力を受けて更新状態記憶制御機構３２から更新状態記憶ポインタ３０に値を設定することで更新状態記憶機構３１の各更新状態記憶エントリ３１１を順次選択し、障害となったキャッシュメモリ４と接続されているプロセッサ２は、更新状態記憶機構３１の各更新状態記憶エントリ３１１の内容を取り出し、更新状態記憶エントリ３１１が更新済みとなっているアドレスについて障害キャッシュメモリと接続していない他プロセッサ２に接続するキャッシュライン４９をサーチする。サーチの結果更新状態記憶機構３１の更新状態記憶エントリ３１１が更新済みとなっているアドレスと一致した主記憶アドレスを持つ他プロセッサ２のキャッシュライン４９が有る場合、一致した他プロセッサ２のキャッシュライン４９のデータを主記憶に書き戻す。更新状態記憶機構３１の更新状態記憶エントリ３１１が更新済みとなっているアドレス全てについて、他プロセッサ２のキャッシュメモリ４のデータによる主記憶書き戻しができた場合は、障害があるキャッシュメモリ４の全てのダーティシェアードデータのデータ復旧完了としてシステムの稼動を継続する。更新状態記憶機構３１の更新状態記憶エントリ３１１が更新済みとなっているアドレスで他プロセッサ２に接続するキャッシュメモリ４による主記憶書き戻しができないアドレスがある場合は、障害があるキャッシュメモリ４のデータ復元失敗としてシステムを停止させる。
【００３５】
以上のように制御を行う手段を設けることにより、キャッシュメモリ障害時のデータ復元動作を行うことができる。本発明の第２の実施の形態は、第１の実施の形態と同様に障害キャッシュメモリ上の更新データのデータ復元をしキャッシュメモリ障害処理をおこなうことができ、第１の実施の形態から一部機能を省くことによりハードウェア量を押さえることができるという効果を有する。
【００３６】
【発明の効果】
第１の効果は、キャッシュメモリに障害が発生しキャッシュメモリの内部に保持するデータとアドレスを取り出すことができなくなった場合でも、キャッシュメモリ内のデータを主記憶上に反映することができる。その理由は、キャッシュメモリを有する複数のプロセッサを備えるマルチプロセッサシステムでは、各プロセッサのアクセスしたデータがそれぞれのプロセッサに接続されるキャッシュメモリ上にダーティシェアード状態で存在する場合があり、つまり各キャッシュメモリ上に同一主記憶アドレスの同一データが存在する場合がある。このため、障害となったキャッシュメモリの更新データのアドレスと同一のアドレスを他プロセッサのキャッシュメモリが保持していれば、同一アドレスのデータを主記憶に書き込むことにより、障害となったキャッシュメモリの更新データの復元が行える。
【００３７】
第２の効果は、キャッシュメモリに障害が発生しキャッシュメモリの内部に保持するデータとアドレスを取り出すことができなくなった場合でも、障害キャッシュメモリ上に更新データが存在するかどうか判断し更新データが無い場合は、データの復元動作無しで障害復旧完了とすることができる。その理由は、キャッシュメモリのデータ更新時に、キャッシュメモリのデータ更新エントリに対応する主記憶アドレスに関する情報をキャッシュメモリの外に保持しているからである。
【図面の簡単な説明】
【図１】本発明の実施の形態の適用されるマルチプロセッサシステムの構成を示すブロック図である。
【図２】本発明の第一の実施の形態の更新アドレス保持部３とキャッシュメモリ４の構成を示す図である。
【図３】本発明の実施の形態において、プロセッサ２から主記憶８を読み出す動作を示すフローチャートである。
【図４】本発明の実施の形態において、プロセッサ２から主記憶８へ書き込みする動作を示すフローチャートである。
【図５】本発明の実施の形態において、更新アドレス保持部３がキャッシュメモリ無効化信号２５を受信したときの動作を示すフローチャートである。
【図６】本発明の実施の形態において、更新アドレス保持部３がキャッシュメモリ更新信号２４を受信したときの動作を示すフローチャートである。
【図７】本発明の実施の形態において、キャッシュメモリ障害処理の動作を示すフローチャートである。
【図８】本発明の第二の実施の形態の更新アドレス保持部３の構成を示す図である。
【符号の説明】
１    中央処理装置
２    プロセッサ
３    更新アドレス保持部
４    キャッシュメモリ
５    入出力制御装置
８    主記憶
９    システムバス
２０    主記憶アドレスレジスタ
２１    更新アドレス記憶機構
２２    アドレス比較機構
２３    更新アドレス記憶制御機構
２４    キャッシュメモリ更新信号
２５    キャッシュメモリ無効化信号
２６    プロセッサ読み出し信号
３０    更新状態記憶ポインタ
３１    更新状態記憶機構
３２    更新状態記憶制御機構
４１    キャッシュ制御部
４３    キャッシュタグメモリ
４４    キャッシュデータメモリ
４５    キャッシュステータスメモリ
４９    キャッシュライン
２１１    更新アドレス記憶エントリ
３１１    更新状態記憶エントリ
【図１】
0003555847.tif 000002
【図２】
0003555847.tif 000003
【図３】
0003555847.tif 000004
【図４】
0003555847.tif 000005
【図５】
0003555847.tif 000006
【図６】
0003555847.tif 000007
【図７】
0003555847.tif 000008
【図８】
0003555847.tif 000009