(57)【要約】【課題】障害発生時の二重化にかかる時間を短くすることを課題とする。【解決手段】現用系プロセッサ２０１ａのシステムコントローラ２０３ａは、障害発生時に、ＣＰＵキャッシュタグ記憶部２０８ａに格納されたキャッシュタグを用いて、更新データを格納しているキャッシュラインを検索する。そして、システムコントローラ２０３ａは、検索されたキャッシュラインに対応するキャッシュメモリ２０４ａのアドレスに、主メモリ２１０ａにコピーバックインバリデート指示を行う。続いて、システムコントローラ２０３ａは、コピーバックインバリデート指示が行われたキャッシュメモリ２０４ａにおけるキャッシュラインの更新データを引継ぎ用バッファメモリ２１４ａにコピーバックする。その後、システムコントローラ２０３ａは、コピーバックされた更新データを予備系プロセッサ２０１ｂに送信して二重化する。【選択図】        図１
2008171058.tif 000002
【特許請求の範囲】
【請求項１】
障害発生時に、ＣＰＵ内のキャッシュメモリに格納されたデータを予備系に送信して二重化を行うシステムコントローラであって、
障害発生時に、前記キャッシュメモリにおけるキャッシュラインごとの更新状況を示すキャッシュタグを用いて、主メモリに未だ反映されていない更新データを格納しているキャッシュラインを検索する検索手段と、
前記検索手段によって検索されたキャッシュラインにコピーバックインバリデート指示を行う指示手段と、
前記指示手段によってコピーバックインバリデート指示が行われた前記キャッシュラインの更新データをコピーバックするコピーバック手段と、
前記コピーバック手段によってコピーバックされた前記更新データを予備系に送信して二重化する二重化手段と、
を備えることを特徴とするシステムコントローラ。
【請求項２】
前記コピーバック手段は、前記指示手段によってコピーバックインバリデート指示が行われた前記キャッシュラインのデータを当該システムコントローラ内のバッファにコピーバックし、
前記二重化手段は、前記バッファにコピーバックされたデータを予備系に送信して二重化することを特徴とする請求項１に記載のシステムコントローラ。
【請求項３】
障害発生時に、ＣＰＵ内のキャッシュメモリに格納されたデータを予備系に送信して二重化を行うプロセッサであって、
障害発生時に、前記キャッシュメモリにおけるキャッシュラインごとの更新状況を示すキャッシュタグを用いて、主メモリに未だ反映されていない更新データを格納しているキャッシュラインを検索する検索手段と、
前記検索手段によって検索されたキャッシュラインにコピーバックインバリデート指示を行う指示手段と、
前記指示手段によってコピーバックインバリデート指示が行われた前記キャッシュラインの更新データをコピーバックするコピーバック手段と、
前記コピーバック手段によってコピーバックされた前記更新データを予備系に送信して二重化する二重化手段と、
を備えることを特徴とするプロセッサ。
【請求項４】
現用系および予備系で構成され、障害発生時に、現用系におけるＣＰＵ内のキャッシュメモリに格納されたデータを予備系に送信して二重化を行う情報処理システムであって、
前記現用系は、
障害発生時に、前記キャッシュメモリにおけるキャッシュラインごとの更新状況を示すキャッシュタグを用いて、主メモリに未だ反映されていない更新データを格納しているキャッシュラインを検索する検索手段と、
前記検索手段によって検索されたキャッシュラインにコピーバックインバリデート指示を行う指示手段と、
前記指示手段によってコピーバックインバリデート指示が行われた前記キャッシュラインの更新データをコピーバックするコピーバック手段と、
前記コピーバック手段によってコピーバックされた前記更新データを予備系に送信して二重化する二重化手段と、
前記予備系は、
前記二重化手段によって送信された前記更新データを主メモリに書き込む書き込み手段と、
を備えることを特徴とする情報処理システム。
【請求項５】
障害発生時に、ＣＰＵ内のキャッシュメモリに格納されたデータを予備系に送信して二重化を行う情報処理方法をコンピュータに実行させる情報処理プログラムであって、
障害発生時に、前記キャッシュメモリにおけるキャッシュラインごとの更新状況を示すキャッシュタグを用いて、主メモリに未だ反映されていない更新データを格納しているキャッシュラインを検索する検索手順と、
前記検索手順によって検索されたキャッシュラインにコピーバックインバリデート指示を行う指示手順と、
前記指示手順によってコピーバックインバリデート指示が行われた前記キャッシュラインの更新データをコピーバックするコピーバック手順と、
前記コピーバック手順によってコピーバックされた前記更新データを予備系に送信して二重化する二重化手順と、
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、障害発生時に、ＣＰＵ内のキャッシュメモリに格納されたデータを予備系に送信して二重化を行うシステムコントローラ、プロセッサ、情報処理システムおよび情報処理プログラムに関する。
【背景技術】
【０００２】
従来より、キャッシュメモリを有するＣＰＵとデータを格納する主メモリとを管理するとともに、キャッシュメモリまたはメインメモリのデータ転送を制御して系を二重化するシステムコントローラが知られている。このようなシステムコントローラを備えるプロセッサがデータを更新するライトアクセスを受け付けた場合に、更新するデータを主メモリに反映する方式として、ライトスルー方式とライトバック方式とが存在する。
【０００３】
ライトスルー方式は、ＣＰＵがメインメモリにデータを書き込む際に同時にキャッシュメモリへ同じ内容を書き込む方式である（例えば、特許文献１）。また、ライトバック方式は、ＣＰＵがデータをメインメモリに書き込む際に、ひとまずメインメモリより高速なキャッシュのみに書き込んでおき、その後、所定の条件を満たした場合に、キャッシュメモリからメインメモリに書き込む方式である。
【０００４】
このライトバック方式では、所定の条件が整わない限りキャッシュに更新されたデータを滞留させ、すぐに主メモリへ反映させないので、メモリバス等のＣＰＵ外部バスから受ける制約が少なくライトスルー方式より高い性能が期待できる。
【０００５】
しかしながら、このライトバック方式では、現用系および予備系で構成される冗長化された情報処理システムにおいて、現用系に障害が発生した際に、予備系の主メモリに更新データが未だ反映されていない場合には、予備系が処理を引き継ぐために予備系の主メモリへ更新データを反映させる必要がある。
【０００６】
具体的には、情報処理システムの現用系は、障害が発生すると、全キャッシュサイズ分のシステム未使用領域のメモリリロードを行い、キャッシュメモリにおける全キャッシュラインを読み出して自系の主メモリに更新データを反映させるＲｅｆｉｌｌ処理（以下、キャッシュフラッシュと呼ぶ）を行う。その後、主メモリに格納された更新データを予備系に送信して二重化を行う。
【０００７】
【特許文献１】特開平６−６７９７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、上記した従来の技術では、キャッシュメモリにおける全キャッシュラインを読み出して、予備系の主メモリに反映させるので、主メモリに未だ反映されていない更新データだけでなく、すでに主メモリに反映されたデータについても読み出す結果、障害発生時の二重化にかかる時間が長いという課題があった。
【０００９】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、障害発生時の二重化にかかる時間を短くすることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、障害発生時に、ＣＰＵ内のキャッシュメモリに格納されたデータを予備系に送信して二重化を行うシステムコントローラであって、障害発生時に、前記キャッシュメモリにおけるキャッシュラインごとの更新状況を示すキャッシュタグを用いて、主メモリに未だ反映されていない更新データを格納しているキャッシュラインを検索する検索手段と、前記検索手段によって検索されたキャッシュラインにコピーバックインバリデート指示を行う指示手段と、前記指示手段によってコピーバックインバリデート指示が行われた前記キャッシュラインの更新データをコピーバックするコピーバック手段と、前記コピーバック手段によってコピーバックされた前記更新データを予備系に送信して二重化する二重化手段と、を備えることを特徴とすることを特徴とする。
【００１１】
また、請求項２に係る発明は、上記の発明において、前記コピーバック手段は、前記指示手段によってコピーバックインバリデート指示が行われた前記キャッシュラインのデータを当該システムコントローラ内のバッファにコピーバックし、前記二重化手段は、前記バッファにコピーバックされたデータを予備系に送信して二重化することを特徴とする。
【００１２】
また、請求項３に係る発明は、上記の発明において、障害発生時に、ＣＰＵ内のキャッシュメモリに格納されたデータを予備系に送信して二重化を行うプロセッサであって、障害発生時に、前記キャッシュメモリにおけるキャッシュラインごとの更新状況を示すキャッシュタグを用いて、主メモリに未だ反映されていない更新データを格納しているキャッシュラインを検索する検索手段と、前記検索手段によって検索されたキャッシュラインにコピーバックインバリデート指示を行う指示手段と、前記指示手段によってコピーバックインバリデート指示が行われた前記キャッシュラインの更新データをコピーバックするコピーバック手段と、前記コピーバック手段によってコピーバックされた前記更新データを予備系に送信して二重化する二重化手段と、を備えることを特徴とする。
【００１３】
また、請求項４に係る発明は、上記の発明において、現用系および予備系で構成され、障害発生時に、現用系におけるＣＰＵ内のキャッシュメモリに格納されたデータを予備系に送信して二重化を行う情報処理システムであって、前記現用系は、障害発生時に、前記キャッシュメモリにおけるキャッシュラインごとの更新状況を示すキャッシュタグを用いて、主メモリに未だ反映されていない更新データを格納しているキャッシュラインを検索する検索手段と、前記検索手段によって検索されたキャッシュラインにコピーバックインバリデート指示を行う指示手段と、前記指示手段によってコピーバックインバリデート指示が行われた前記キャッシュラインの更新データをコピーバックするコピーバック手段と、前記コピーバック手段によってコピーバックされた前記更新データを予備系に送信して二重化する二重化手段と、前記予備系は、前記二重化手段によって送信された前記更新データを主メモリに書き込む書き込み手段と、を備えることを特徴とする。
【００１４】
また、請求項５に係る発明は、上記の発明において、障害発生時に、ＣＰＵ内のキャッシュメモリに格納されたデータを予備系に送信して二重化を行う情報処理方法をコンピュータに実行させる情報処理プログラムであって、障害発生時に、前記キャッシュメモリにおけるキャッシュラインごとの更新状況を示すキャッシュタグを用いて、主メモリに未だ反映されていない更新データを格納しているキャッシュラインを検索する検索手順と、前記検索手順によって検索されたキャッシュラインにコピーバックインバリデート指示を行う指示手順と、前記指示手順によってコピーバックインバリデート指示が行われた前記キャッシュラインの更新データをコピーバックするコピーバック手順と、前記コピーバック手順によってコピーバックされた前記更新データを予備系に送信して二重化する二重化手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１５】
請求項１、３、４または５の発明によれば、障害発生時に、キャッシュメモリにおけるキャッシュラインごとの更新状況を示すキャッシュタグを用いて、主メモリに未だ反映されていない更新データを格納しているキャッシュラインを検索し、検索されたキャッシュラインにコピーバックインバリデート指示を行い、コピーバックインバリデート指示が行われたキャッシュラインの更新データをコピーバックし、コピーバックされた更新データを予備系に送信して二重化するので、主メモリに未だ反映されていない更新データのみを読み出す結果、障害発生時の二重化にかかる時間を短くすることが可能である。
【００１６】
また、請求項２の発明によれば、コピーバックインバリデート指示が行われたキャッシュラインのデータをシステムコントローラ内のバッファにコピーバックし、バッファにコピーバックされたデータを予備系に送信して二重化するので、バッファからデータを読み出して、予備系に送信する結果、障害発生時の二重化にかかる時間をより短くすることが可能である。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照して、この発明に係るシステムコントローラ、プロセッサ、情報処理システムおよび情報処理プログラムの実施例を詳細に説明する。
【実施例１】
【００１８】
以下の実施例では、実施例１に係る情報処理システムの概要および特徴、情報処理システムの構成および処理の流れを順に説明し、最後に実施例１による効果を説明する。
【００１９】
［実施例１に係る情報処理システムの概要および特徴］
まず最初に、図１を用いて、実施例１に係る情報処理システムの概要および特徴を説明する。図１は、実施例１に係る情報処理システムの概要および特徴を説明するための図である。
【００２０】
実施例１の情報処理システム２００では、現用系プロセッサ２０１ａおよび予備系プロセッサ２０１ｂで構成され、障害発生時に、ＣＰＵ２０２ａ内のキャッシュメモリ２０４ａに格納されたデータを予備系プロセッサ２０１ｂに送信して二重化を行うことを概要とする。そして、この情報処理システム２００では、障害発生時の二重化にかかる時間を短くする点に主たる特徴がある。
【００２１】
この主たる特徴について具体的に説明すると、情報処理システム２００のプロセッサ２０１ａは、ＣＰＵ２０２ａおよびシステムコントローラ２０３ａを備える。ＣＰＵ２０２ａは、キャッシュラインごとにデータを格納するとともに、キャッシュラインごとの更新状況を示すキャッシュタグ２０５ａを格納するキャッシュメモリ２０４ａを備える。
【００２２】
また、システムコントローラ２０３ａは、ＣＰＵ２０２ａのキャッシュメモリ２０４ａにおけるキャッシュラインごとの更新状況を示すキャッシュタグを格納するＣＰＵキャッシュタグ記憶部２０８ａと、後述する主メモリ２１０ａに未だ反映されていない更新データを格納する引継用バッファメモリ２１４ａとを備える。
【００２３】
このような構成のもと、現用系プロセッサ２０１ａのシステムコントローラ２０３ａは、障害発生時に、ＣＰＵキャッシュタグ記憶部２０８ａに格納されたキャッシュタグを用いて、更新データを格納しているキャッシュラインを検索する（図１の（１）参照）。具体的には、システムコントローラ２０３ａは、各キャッシュラインが更新された状態であるモディファイであるか否かを判定して検索する。
【００２４】
そして、システムコントローラ２０３ａは、検索されたキャッシュラインに対応するキャッシュメモリ２０４ａのアドレスに、主メモリ２１０ａに更新データを反映する旨の指示であるコピーバックインバリデート指示を行う（図１の（２）参照）。具体的には、システムコントローラ２０３ａは、キャッシュメモリ２０４ａにおけるモディファイであるキャッシュラインにコピーバックインバリデート指示を送信する。
【００２５】
続いて、システムコントローラ２０３ａは、コピーバックインバリデート指示が行われたキャッシュメモリ２０４ａにおけるキャッシュラインの更新データを引継用バッファメモリ２１４ａにコピーバックする（図１の（３）参照）。その後、システムコントローラ２０３ａは、コピーバックされた更新データを予備系プロセッサ２０１ｂに送信して二重化する（図１の（４）参照）。
【００２６】
このように、情報処理システム２００は、主メモリ２１０ａに未だ反映されていない更新データのみを読み出す結果、上記した主たる特徴のごとく、障害発生時の二重化にかかる時間を短くすることが可能である。
【００２７】
［情報処理システムの構成］
次に、図２を用いて、図１に示した情報処理システム２００の構成を説明する。図２は、実施例１に係る情報処理システムの構成を示すブロック図である。同図に示すように、この情報処理システム２００は、現用系プロセッサ２０１ａおよび予備系プロセッサ２０１ｂで構成される。なお、現用系プロセッサ２０１ａと予備系プロセッサ２０１ｂとは同様の構成である。
【００２８】
現用系プロセッサ２０１ａは、ＣＰＵ２０２ａ、システムコントローラ２０３ａ、主メモリ２１０ａ、ＲＯＭ２１１ａおよび監視制御部２１２ａを備え、メモリ二重化バス２２１を介して予備系プロセッサ２０１ｂに接続される。以下にこれらの各部の処理を説明する。
【００２９】
主メモリ２１０ａは、リード要求またはライト要求によって、リードまたはライトされるデータを格納する。ＲＯＭ２１１ａは、各種プログラム（命令）を格納している。例えば、ＲＯＭ２１１ａは、現用系プロセッサの障害発生時に走行される再開プログラムを格納している。
【００３０】
ＣＰＵ２０２ａは、キャッシュメモリ２０４ａおよび命令フェッチロード／ストア２０６ａを備える。キャッシュメモリ２０４ａは、キャッシュラインごとにデータを格納するとともに、キャッシュラインごとの更新状況を示すキャッシュタグ２０５ａを格納する。また、命令フェッチロード／ストア２０６ａは、後述するＲＯＭ２１１ａから命令をフェッチして、ロード／ストア命令を実行する。
【００３１】
システムコントローラ２０３ａは、ＣＰＵキャッシュタグ記憶部２０８ａ、引継用バッファメモリ２１４ａ、キャッシュ引継制御部２１３ａ、コヒーレンス制御部２０７ａおよびメモリ二重化制御部２０９ａを備える。なお、キャッシュ引継制御部２１３ａは、特許請求の範囲に記載の「検索手段」、「指示手段」および「コピーバック手段」に対応し、メモリ二重化制御部２０９ａは、特許請求の範囲に記載の「二重化手段」に対応する。
【００３２】
ＣＰＵキャッシュタグ記憶部２０８ａは、ＣＰＵ２０２ａのキャッシュメモリ２０４ａにおけるキャッシュラインごとの更新状況を示すキャッシュタグを記憶する。具体的には、ＣＰＵキャッシュタグ記憶部２０８ａは、図３に示すように、キャッシュラインを一意に識別するキャッシュラインＩＤとモディファイであるか否かを示す情報とを対応付けて記憶している。
【００３３】
引継用バッファメモリ２１４ａは、予備系プロセッサ２０１ｂおよび主メモリ２１０ａに送信する更新データを一時的に格納する。なお、引継用バッファメモリ２１４ａには、アクセス競合による待ち合わせを避けるため、デュアルポートメモリを使用する。
【００３４】
コヒーレンス制御部２０７ａは、ＣＰＵキャッシュタグ情報を管理する。具体的には、コヒーレンス制御部２０７ａは、引継用バッファメモリ２１４ａアクセスおよび主メモリ２１０ａアクセス時のＣＰＵキャッシュタグ記憶部２０８ａ、引継キャッシュタグ２１５ａの検索、更新とコヒーレンス制御を行う。
【００３５】
キャッシュ引継制御部２１３ａは、ＣＰＵキャッシュタグ記憶部２０８ａに格納されたキャッシュタグを用いて、更新データを格納しているキャッシュラインを検索し、検索されたキャッシュラインに対応するキャッシュメモリ２０４ａのアドレスに、主メモリ２１０ａに更新データを反映する旨の指示であるコピーバックインバリデート指示を行う。また、キャッシュ引継制御部２１３ａは、コピーバックインバリデート指示が行われたキャッシュメモリ２０４ａにおけるキャッシュラインの更新データを引継用バッファメモリ２１４ａにコピーバックする。
【００３６】
具体的には、キャッシュ引継制御部２１３ａは、後述する監視制御部２１２ａからリセットを検出すると、系切替ライトバックを起動し、系切替ライトバック実行中はＣＰＵ２０２ａからのアクセスをブロッキングする。そして、キャッシュ引継制御部２１３ａは、各キャッシュラインが更新された状態であるモディファイであるか否かを判定し、モディファイであると判定したキャッシュラインについて、キャッシュメモリ２０４ａにコピーバックインバリデート指示を送信する。
【００３７】
そして、キャッシュ引継制御部２１３ａは、キャッシュメモリ２０４ａのデータ無効化とコピーバックを行い引継用バッファメモリ２１４ａに格納する。その後、キャッシュ引継制御部２１３ａは、引継用バッファメモリ２１４ａに有効なデータがある場合、主メモリ２１０ａへのライトを行い、ライトした引継用バッファメモリ２１４ａを無効化する。
【００３８】
また、キャッシュ引継制御２１３ａは、全てのＣＰＵキャッシュタグ記憶部２０８ａのステート、タグリードと、更新されたキャッシュメモリ２０４ａのデータ無効化とコピーバックを完了した後、メモリ二重化制御部２０９ａの二重化停止を指示し、系切替ライトバックを終了する。なお、系切替ライトバック終了により、システムコントローラ２０３ａは、ＣＰＵ２０２ａからのアクセスブロッキングを解除し、ブロッキングが解除されたＣＰＵ２０２ａは、ＲＯＭ２１１ａからプログラム（命令）をフェッチし命令実行する。
【００３９】
メモリ二重化制御部２０９ａは、コピーバックされた更新データを予備系プロセッサ２０１ｂに送信して二重化する。具体的には、メモリ二重化制御部２０９ａは、続いて引継用バッファメモリ２１４ａに格納されたデータにキャッシュ引継用バッファ格納フラグを付加し、メモリ二重化制御部２０９ａにアドレス、データを登録し、メモリ二重化バス２２１を経由し、予備系プロセッサ２０１ｂのメモリ二重化制御２０９ｂに送信する。
【００４０】
監視制御部２１２ａは、自装置の状況を監視する。具体的には、監視制御部２１２ａは、現用系プロセッサ２０１ａに障害を検出すると、ＣＰＵ２０２ａへリセットを行う。監視制御部２１２ａは、再開プログラムからの指示もしくは、障害検出から一定の時間が経過すると、監視交差バス２２２を経由し予備系プロセッサ２０１ｂの監視制御部２１２ｂへ系切り換え要因検出を通知する。
【００４１】
そして、系切り換え要因検出を通知された監視制御部２１２ｂは、予備系プロセッサ２０１ｂのＣＰＵ２０２ｂへリセットを行う。なお、その後、予備系プロセッサ２０１ｂのＣＰＵ２０２ｂは、ＲＯＭ２１１ｂのプログラム走行後に、新運用系として自系主メモリ２１０ｂを用いて中断された処理を再開する。
【００４２】
予備系プロセッサ２０１ｂは、現用系プロセッサと同様の構成である。以下に、予備系プロセッサ２０１ｂが備えるメモリ二重化制御部２０９ｂおよびキャッシュ引継制御部２１３ｂについて説明する。
【００４３】
予備系プロセッサ２０１ｂのメモリ二重化制御部２０９ｂは、メモリ二重化バス２２１から更新データを受信すると、更新データを引継用バッファメモリ２１４ｂに格納する。具体的には、メモリ二重化制御部２０９ｂは、メモリ二重化バス２２１から受信したデータのキャッシュ引継用バッファ格納フラグを判定し、システムコントローラ２０３ｂの引継用バッファメモリ２１４ｂに格納する。
【００４４】
予備系プロセッサ２０１ｂのキャッシュ引継制御部２１３ｂは、引継用バッファメモリ２１４ａに格納された更新データに対応するキャッシュメモリ２０４ｂのキャッシュラインにコピーバックインバリデート指示を送信する。具体的には、キャッシュ引継制御部２１３ｂは、メモリ二重化制御部２０９ｂから引継用バッファメモリ２１４ｂへのライトを検出すると、ＣＰＵキャッシュタ国分グ２０８ｂの検索および判定を行い、キャッシュメモリ２０４ｂにヒットした場合はインバリデート指示をＣＰＵ２０２ｂに送信し、キャッシュメモリ２０４ｂのデータ無効化を行う。
【００４５】
［現用系プロセッサによる処理］
次に、図４を用いて、実施例１に係る現用系プロセッサ２０１ａによる処理を説明する。図４は、実施例１に係る現用系プロセッサ２０１ａの処理動作を示すフローチャートである。
【００４６】
同図に示すように、現用系プロセッサ２０１ａのキャッシュ引継制御部２１３ａは、障害が発生すると（ステップＳ１０１肯定）、ＣＰＵキャッシュタグ記憶部２０８ａに格納されたキャッシュタグを用いて、更新データを格納しているキャッシュラインを検索する（ステップＳ１０２）。
【００４７】
そして、キャッシュ引継制御部２１３ａは、検索されたキャッシュラインに対応するキャッシュメモリ２０４ａのアドレスに、主メモリ２１０ａに更新データを反映する旨の指示であるコピーバックインバリデート指示を行う（ステップＳ１０３）。
【００４８】
続いて、キャッシュ引継制御部２１３ａは、コピーバックインバリデート指示が行われたキャッシュメモリ２０４ａにおけるキャッシュラインの更新データを引継用バッファメモリ２１４ａにコピーバックする（ステップＳ１０４）。
【００４９】
その後、メモリ二重化制御部２０９ａは、コピーバックされた更新データを予備系プロセッサ２０１ｂに送信して二重化する（ステップＳ１０５）。そして、キャッシュ引継制御部２１３ａは、引継用バッファメモリ２１４ａの更新データを主メモリ２１０ａに書き込む（ステップＳ１０６）。
【００５０】
［予備系プロセッサによる処理］
次に、図５を用いて、実施例１に係る予備系プロセッサ２０１ｂによる処理を説明する。図５は、実施例１に係る予備系プロセッサ２０１ｂの処理動作を示すフローチャートである。
【００５１】
同図に示すように、予備系プロセッサ２０１ｂのメモリ二重化制御部２０９ｂは、メモリ二重化バス２２１から更新データを受信すると（ステップＳ２０１肯定）、更新データを引継用バッファメモリ２１４ｂに格納する（ステップＳ２０２）。
【００５２】
そして、キャッシュ引継制御部２１３ｂは、引継用バッファメモリ２１４ｂに格納された更新データに対応するキャッシュメモリ２０４ｂのキャッシュラインにコピーバックインバリデート指示を送信して、データの無効化を行う（ステップＳ２０３）。その後、キャッシュ引継制御部２１３ｂは、引継用バッファメモリ２１４ｂに格納された更新データを主メモリ２１０ｂに書き込む（ステップＳ２０４）。
【００５３】
[実施例１の効果]
上述してきたように、情報処理システム２００は、障害発生時に、キャッシュメモリ２０４ａにおけるキャッシュラインごとの更新状況を示すキャッシュタグを用いて、主メモリ２１０ａに未だ反映されていない更新データを格納しているキャッシュラインを検索し、検索されたキャッシュラインにコピーバックインバリデート指示を行い、コピーバックインバリデート指示が行われたキャッシュラインの更新データをコピーバックし、コピーバックされた更新データを予備系に送信して二重化するので、主メモリ２１０ａに未だ反映されていない更新データのみを読み出す結果、障害発生時の二重化にかかる時間を短くすることが可能である。
【００５４】
また、実施例１によれば、コピーバックインバリデート指示が行われたキャッシュラインのデータをシステムコントローラ２０３ａ内の引継用バッファメモリ２１４ａにコピーバックし、引継用バッファメモリ２１４ａにコピーバックされたデータを予備系プロセッサ２０１ｂに送信して二重化するので、引継用バッファメモリ２１４ａからデータを読み出して、予備系プロセッサ２０１ｂに送信する結果、障害発生時の二重化にかかる時間をより短くすることが可能である。
【実施例２】
【００５５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。
【００５６】
（１）コピーバック
また、上記の実施例１では、システムコントローラ２０３ａ内のバッファにコピーバックする場合を説明したが、本発明はこれに限定されるものではなく、主メモリ２１０ａにコピーバックしてもよい。具体的には、システムコントローラ２０３ａは、キャッシュメモリ２０４ａの更新データを主メモリ２１０ａにコピーバックし、その後、主メモリから更新データを読み出して、予備系プロセッサ２０１ｂに送信して二重化する。
【００５７】
（２）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、キャッシュ引継制御部２１３ａおよびメモリ二重化制御部２０９ａを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５８】
（３）プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図６を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図６は、情報処理プログラムを実行するコンピュータを示す図である。
【００５９】
同図に示すように、システムコントローラとしてのコンピュータ６００は、ＲＡＭ６２０、ＲＯＭ６３０およびＣＰＵ６４０をバス６１０で接続して構成される。
【００６０】
そして、ＲＯＭ６３０には、上記の実施例と同様の機能を発揮するシステムコントローラ、つまり、図６に示すように、キャッシュ引継プログラム６３１、コヒーレンス制御プログラム６３２およびメモリ二重化制御プログラム６３３が予め記憶されている。なお、プログラム６３１〜６３３については、図２に示したシステムコントローラの各構成要素と同様、適宜統合または分散してもよい。
【００６１】
そして、ＣＰＵ６４０が、これらのプログラム６３１〜６３３をＲＯＭ６３０から読み出して実行することで、図６に示すように、各プログラム６３１〜６３３は、キャッシュ引継プロセス６４１、コヒーレンス制御プロセス６４２およびメモリ二重化制御プロセス６４３として機能するようになる。各プロセス６４１〜６４３は、図２に示したキャッシュ引継制御部２１３ａ、コヒーレンス制御部２０７ａおよびメモリ二重化制御部２０９ａにそれぞれ対応する。
【００６２】
また、ＲＡＭ６２０には、図６に示すように、引継用バッファメモリ６２１およびＣＰＵキャッシュタグ記憶部６２２が設けられる。なお、引継用バッファメモリ６２１およびＣＰＵキャッシュタグ記憶部６２２は、図２に示したＣＰＵキャッシュタグ記憶部２０８ａおよび引継用バッファメモリ２１４ａに対応する。そして、ＣＰＵ６４０は、引継用バッファメモリ６２１およびＣＰＵキャッシュタグ記憶部６２２に対してデータを登録するとともに、引継用バッファメモリ６２１およびＣＰＵキャッシュタグ記憶部６２２からデータを読み出して、読み出されたデータに基づいて処理を実行する。
【産業上の利用可能性】
【００６３】
以上のように、本発明に係るシステムコントローラ、プロセッサ、情報処理システムおよび情報処理プログラムは障害発生時に、ＣＰＵ内のキャッシュメモリに格納されたデータを予備系に送信して二重化を行う場合に有用であり、特に、障害発生時の二重化にかかる時間を短くすることに適する。
【図面の簡単な説明】
【００６４】
【図１】実施例１に係る情報処理システムの概要および特徴を説明するための図である。
【図２】実施例１に係る情報処理システムの構成を示すブロック図である。
【図３】ＣＰＵキャッシュタグ記憶部が記憶するタグ情報を説明するための図である。
【図４】実施例１に係る現用系プロセッサの処理手順を説明するためのフローチャートである。
【図５】実施例１に係る予備系プロセッサの処理手順を説明するためのフローチャートである。
【図６】情報処理プログラムを実行するコンピュータを示す図である。
【符号の説明】
【００６５】
２００  情報処理システム
２０１ａ  現用系プロセッサ
２０１ｂ  予備系プロセッサ
２０２ａ，２０２ｂ  ＣＰＵ
２０３ａ，２０３ｂ  システムコントローラ
２０４ａ，２０４ｂ  キャッシュメモリ
２０５ａ，２０５ｂ  キャッシュタグ
２０６ａ，２０６ｂ  命令フェッチロード／ストア処理
２０７ａ，２０７ｂ  コヒーレンス制御部
２０８ａ，２０８ｂ  ＣＰＵキャッシュタグ記憶部
２０９ａ，２０９ｂ  メモリ二重化制御部
２１０ａ，２１０ｂ  主メモリ
２１１ａ，２１１ｂ  ＲＯＭ
２１２ａ，２１２ｂ  監視制御部
２１３ａ，２１３ｂ  キャッシュ引継制御部
２１４ａ，２１４ｂ  引継用バッファメモリ
２１５ａ，２１５ｂ  引継キャッシュタグ
２２１  メモリ二重化バス
２２２  監視交差バス
【図１】
2008171058.tif 000003
【図２】
2008171058.tif 000004
【図３】
2008171058.tif 000005
【図４】
2008171058.tif 000006
【図５】
2008171058.tif 000007
【図６】
2008171058.tif 000008