(57)【要約】 【課題】  本発明は、データを複数のメモリに割り当て、それぞれのメモリを制御するメモリコントローラを同期して処理する情報処理装置において発生する訂正不可能なエラーエラーを訂正することを目的とする。【解決手段】  本願発明に係る情報処理装置は、データを複数に分割する制御手段と、分割データを格納する複数の格納手段と、各格納手段に対応し、分割データの書き込み、又は分割データの読み出しを行う複数の格納制御手段と、処理の履歴を記憶する複数の履歴記憶手段と、該処理のエラーを検出するエラー検出手段と、該エラーを訂正する旨を示すエラー訂正信号を生成するエラー訂正信号生成手段と、各履歴記憶手段に対応し、該エラー訂正信号に基づいて各履歴記憶手段の履歴の記憶を停止する複数の履歴停止手段とからなることを特徴とする。【選択図】  図１
2008158800.tif 000002
【特許請求の範囲】
【請求項１】
データの書き込み又は読み出しの処理を行い、該処理の履歴を管理する情報処理装置において、
該データを複数の分割データに分割する制御手段と、
該制御手段が分割した複数の該分割データを格納する複数の格納手段と、
各格納手段に対応し、各格納手段へ該分割データを書き込み、又は各格納手段から分割データを読み出す処理を行う複数の格納制御手段と、
各格納制御手段が行う処理の履歴を記憶する複数の履歴記憶手段と、
該格納制御手段における該処理のエラーを検出するエラー検出手段と、
該エラー検出手段において検出したエラーを訂正する旨を示すエラー訂正信号を生成するエラー訂正信号生成手段と、
各履歴記憶手段に対応し、該エラー訂正信号に基づいて各履歴記憶手段の履歴の記憶を停止する複数の履歴停止手段と、
から構成されることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
該エラー訂正信号生成手段は、エラー訂正信号を同期して複数の該履歴停止手段に送信することを特徴とする情報処理装置。
【請求項３】
請求項１に記載の情報処理装置において、
該制御手段は該分割データを冗長して生成することを特徴とする情報処理装置。
【請求項４】
データの書き込み又は読み出しの処理を行い、該処理の履歴を管理する履歴管理方法において、
該データを複数の分割データに分割する分割手順と、
複数の該分割データを複数の格納部に格納する格納手順と、
各格納部へ該分割データを書き込み、又は各格納部から分割データを読み出す処理を行う複数の格納制御手順と、
各格納制御手順が行う処理の履歴を記憶する履歴記憶手順と、
該格納制御手順において、該処理のエラーを検出するエラー検出手順と、
該エラー検出手順において検出したエラーを訂正する旨を示すエラー訂正信号を生成するエラー訂正信号生成手順と、
該エラー訂正信号に基づいて各履歴記憶手順における履歴の記憶を停止する複数の履歴停止手順と、
からなることを特徴とする履歴管理方法。
【請求項５】
データの書き込み又は読み出しの処理を行い、該処理の履歴を管理する履歴管理プログラムにおいて、
該データを複数の分割データに分割する分割ステップと、
複数の該分割データを複数の格納部に格納する格納ステップと、
各格納部へ該分割データを書き込み、又は各格納部から分割データを読み出す処理を行う複数の格納制御ステップと、
各格納制御ステップが行う処理の履歴を記憶する履歴記憶ステップと、
該格納制御ステップにおいて、該処理のエラーを検出するエラー検出ステップと、
該エラー検出ステップにおいて検出したエラーを訂正する旨を示すエラー訂正信号を生成するエラー訂正信号生成ステップと、
該エラー訂正信号に基づいて各履歴記憶ステップにおける履歴の記憶を停止する複数の履歴停止ステップと、
をコンピュータに実行させることを特徴とする履歴管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラー発生時に処理履歴の記録を停止する情報処理装置におけるエラー解析に関する。
【背景技術】
【０００２】
データを複数のメモリに割り当て、それぞれのメモリを制御するメモリコントローラを同期して処理するサーバにおいて、エラーが発生することがある。エラー解析手段として、それぞれのメモリコントローラは、データ処理に対する動作履歴と処理するデータを履歴メモリに記録しておく（以下、動作履歴とデータを合わせてログと呼ぶ。）。そしてエラーが発生した場合、エラーが発生したメモリコントローラは、ログの記録を停止する。サーバの使用者は、エラー発生時のログを参照することによって、エラーの解析を行うことができる。
【０００３】
しかしながら、エラーが発生したメモリコントローラが有するログのみを用いて解析できるエラーは、ごく単純なエラーに限られ、あらゆるエラーに対応できないのが現状である。
【０００４】
より詳細なエラー解析を行うためには、比較対象となるエラーの発生していないデータ処理に対するログと言った同期してデータ処理を行っている他のメモリコントローラにおけるログが必要となる。しかし履歴メモリは、メモリ容量削減のため、記憶するログが容量以上になったとき、古いログを順に削除し、新しいログを上書きする構成になっている。またエラーの発生していないデータ処理に対するログの記録は停止しない。そのため、サーバは、比較対象となるエラーの発生していないメモリコントローラのログを適切に取得することができなかった。
【０００５】
エラー発生時にアクセス履歴を停止する公知文献として以下のものがある。
【特許文献１】特開平６―２６６５８４号公報  特許文献１に記載の集積回路は、入力されるデータを取り込むとともに、古いデータを消去しながら、最も新しいデータから所定サイクル前までのデータを保持するアクセストレースメモリと、異常が発生した場合にアクセストレースメモリの更新処理を停止するメモリ制御部を有する。
【０００６】
しかしながら、サーバは、エラーの発生していないデータ処理に対するログの記録を停止することができず、ログを比較した充分なエラー解析を行うことはできない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、データを複数のメモリに割り当て、それぞれのメモリを制御するメモリコントローラを同期して処理する情報処理装置において発生するダブルエラーなどのいわゆる訂正不可能なエラー（Ｕｎｃｏｒｒｅｃｔａｂｌｅ  ｅｒｒｏｒ以下、ＵＥ）エラーを訂正することを目的とする。
【課題を解決するための手段】
【０００８】
本願発明に係る情報処理装置は、データの書き込み又は読み出しの処理を行い、該処理の履歴を管理する情報処理装置において、該データを複数の分割データに分割する制御手段と、該制御手段が分割した複数の該分割データを格納する複数の格納手段と、各格納手段に対応し、各格納手段へ該分割データを書き込み、又は各格納手段から分割データを読み出す処理を行う複数の格納制御手段と、各格納制御手段が行う処理の履歴を記憶する複数の履歴記憶手段と、該格納制御手段における該処理のエラーを検出するエラー検出手段と、該エラー検出手段において検出したエラーを訂正する旨を示すエラー訂正信号を生成するエラー訂正信号生成手段と、各履歴記憶手段に対応し、該エラー訂正信号に基づいて各履歴記憶手段の履歴の記憶を停止する複数の履歴停止手段とから構成されることを特徴とする。
【０００９】
また本願発明に係る情報処理装置は、該エラー訂正信号生成手段は、エラー訂正信号を同期して複数の該履歴停止手段に送信することを特徴とする。
【００１０】
また本願発明に係る情報処理装置は、該制御手段は該分割データを冗長して生成することを特徴とする。
【００１１】
また本願発明に係る履歴管理方法は、データの書き込み又は読み出しの処理を行い、該処理の履歴を管理する履歴管理方法において、該データを複数の分割データに分割する分割手順と、複数の該分割データを複数の格納部に格納する格納手順と、各格納部へ該分割データを書き込み、又は各格納部から分割データを読み出す処理を行う複数の格納制御手順と、各格納制御手順が行う処理の履歴を記憶する履歴記憶手順と、該格納制御手順において、該処理のエラーを検出するエラー検出手順と、該エラー検出手順において検出したエラーを訂正する旨を示すエラー訂正信号を生成するエラー訂正信号生成手順と、該エラー訂正信号に基づいて各履歴記憶手順における履歴の記憶を停止する複数の履歴停止手順とからなることを特徴とする。
【００１２】
さらに本願発明に係る履歴解析プログラムは、データの書き込み又は読み出しの処理を行い、該処理の履歴を管理する履歴管理プログラムにおいて、該データを複数の分割データに分割する分割ステップと、複数の該分割データを複数の格納部に格納する格納ステップと、各格納部へ該分割データを書き込み、又は各格納部から分割データを読み出す処理を行う複数の格納制御ステップと、各格納制御ステップが行う処理の履歴を記憶する履歴記憶ステップと、該格納制御ステップにおいて、該処理のエラーを検出するエラー検出ステップと、該エラー検出ステップにおいて検出したエラーを訂正する旨を示すエラー訂正信号を生成するエラー訂正信号生成ステップと、該エラー訂正信号に基づいて各履歴記憶ステップにおける履歴の記憶を停止する複数の履歴停止ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、データを複数のメモリに割り当て、それぞれのメモリを制御するメモリコントローラを同期して処理する情報処理装置において、ＵＥに起因する同期信号を用いて、エラーの発生していないデータ処理のログ記録も停止し、ログを用いたＵＥの訂正を行うことができる。
【発明を実施するための最良の形態】
【００１４】
（実施例１）
本実施例では、Ｎｏｎ−Ｍｉｒｒｏｒモードについて説明する。
【００１５】
＜サーバ１００の概念図＞
図１は、本実施例に係る情報処理装置１００の概念図である。情報処理装置は、サーバ、パーソナルコンピュータなどのデータ処理を行う装置を総括的に表しており、本実施例では、以下、情報処理装置をサーバと呼ぶ。
【００１６】
サーバ１００は、システムコントローラ（Ｓｙｓｔｅｍ  Ｃｏｎｔｒｏｌｅｒ）１０１、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）１０２、１０３、１０４、１０５、メモリコントローラ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｅｒ）１０６、１０７、１０８、１０９、メモリ（Ｍｅｍｏｒｙ）１１０、１１１、１１２、１１３とから構成される。サーバ１００は、Ｎｏｎ−Ｍｉｒｒｏｒモードで動作する。Ｎｏｎ−Ｍｉｒｒｏｒモードとは、サーバ１００がメモリ１１０、１１１、１１２、１１３を１つのキャッシュラインとして扱い、メモリ１１０、１１１、１１２、１１３を同期して制御するモードである。本実施例では、データ１１６が分割データ１１７、１１８、１１９、１２０に分割される。そしてメモリ１１０に分割データ１１７、メモリ１１１に分割データ１１８、メモリ１１２に分割データ１１９、メモリ１１３に分割データ１２０が格納される。
【００１７】
［システムコントローラ］
システムコントローラ１０１は、ＣＰＵ１０２、１０３、１０４、１０５からの命令を統括して制御する。システムコントローラ１０１は、ＣＰＵ１０２、１０３、１０４、１０５からの命令に基づき、メモリコントローラ１０６、１０７、１０８、１０９を同期して制御する。
【００１８】
メモリコントローラ１０６、１０７、１０８、１０９は同期して、それぞれメモリ１１０、１１１、１１２、１１３へのメモリアクセスを行い、データの書き込み、読み出しを行う。
【００１９】
システムコントローラ１０１は、アドレス変換テーブル（Ａｄｄｒｅｓｓ  Ｌｏｏｋｕｐ  Ｔａｂｌｅ）１１４を有している。そしてＣＰＵ１０２、１０３、１０４、１０５から転送されたデータは、全メモリ領域でのアドレスを有している。システムコントローラ１０１は、ＣＰＵ１０２、１０３、１０４、１０５から転送されたデータのアドレスをアドレス変換テーブル１１４を用いて、メモリコントローラ１０６、１０７、１０８、１０９に割り当て、各メモリコントローラ１０６、１０７、１０８、１０９でのメモリアクセスにおけるアドレスに変換する。システムコントローラ１０１は、メモリ１１０、１１１、１１２、１１３でのアドレスをメモリコントローラ１０６、１０７、１０８、１０９に転送する。
【００２０】
システムコントローラ１０１は、変換したアドレスを対応するデータと別にアドレスパケットとしてメモリコントローラ１０６、１０７、１０８、１０９に転送する。データとアドレスパケットはそれぞれＩＤを有しており、対応付けがなされている。メモリコントローラ１０６、１０７、１０８、１０９は、データとアドレスパケットを受信すると、データとアドレスパケットが有するＩＤによって、対応するデータとアドレスパケットであるか否かを判断する。
【００２１】
図４は、本実施例に係るアドレスパケット４００である。アドレスパケット４００はＩＤ４０１、ＣＭＤ（Ｃｏｍｍａｎｄ）４０２、ＬＩＡ（ＬＤＸ  Ｉｎｔｅｒｆａｃｅ  Ａｄｄｒｅｓｓ）４０３から構成されている。ＩＤ４０１は、データと対応付ける情報である。ＣＭＤ４０２は、メモリ１１０、１１１、１１２、１１３におけるメモリアクセス命令を示す情報である。ＬＩＡ４０３は、メモリコントローラ１０６、１０７、１０８、１０９における、メモリ１１０、１１１、１１２、１１３のアドレスを示す情報である。
【００２２】
またシステムコントローラ１０１は、スクラブコントローラ１１５を有している。スクラブコントローラ１１５は、メモリコントローラ１０６、１０７、１０８、１０９においてメモリリードエラーが発生した場合に、エラーの発生したメモリアドレスに対し、リード後訂正再書き込み動作(以後、スクラブライトと呼ぶ)を、メモリコントローラ１０６、１０７、１０８、１０９に命令する制御手段である。
【００２３】
［メモリコントローラ］
図２は、本実施例に係るメモリコントローラ１０６の構成図である。メモリコントローラ１０７、１０８、１０９もメモリコントローラ１０６と同等の構成となっている。メモリコントローラ１０６、１０７、１０８、１０９は同期して、それぞれメモリ１１０、１１１、１１２、１１３へのメモリアクセスを行い、データの書き込み、読み出しを行う処理手段である。メモリコントローラ１０６、１０７、１０８、１０９は、サーバ１００全体におけるメモリ１１０、１１１、１１２、１１３へのアクセスを高速化するものである。
【００２４】
そしてメモリコントローラ１０６は、メモリ１１０へのデータの書き込み、メモリ１１０からのデータの読み出し制御を行う。
【００２５】
メモリコントローラ１０６は、履歴メモリ２０１（Ｈｉｓｔｏｒｙ  Ｍｅｍｏｒｙ）、メモリアクセスインタフェース２０２、エラー検出回路２０３、２０４、アドレスコントローラ２０５、ヒストリストップ回路２０６から構成される。
【００２６】
メモリアクセスインタフェース２０２は、メモリ１１０へデータの書き込み、メモリ１１０からのデータの読み出しを行う。そしてメモリアクセスインタフェース２０２は、履歴メモリ２０１に、「メモリアクセスインタフェース２０２がメモリ１１０に書き込む又はメモリ１１０から読み出すデータ」と「書き込み、読み出しの処理履歴」を記録する。本実施例において、「書き込み、読み出しの処理履歴」は、メモリアクセスインタフェース２０２が書き込み制御又は読み出し制御を行った時間間隔、書き込み制御又は読み出し制御を行ったデータのアドレスである。
【００２７】
そして図５は、履歴テーブル５００である。履歴テーブル５００には、「ＥＮＴＲＹ５０１」、「ＣＭＤ５０２」、「ＡＤＤＲＥＳＳ５０３」、「ＤＡＴＡ５０４」、「ＤＡＴＡ  Ｖａｌｉｄ５０５」が記されている。
【００２８】
「ＥＮＴＲＹ５０１」は「メモリアクセスインタフェース２０２がメモリアクセス制御を行ったアクセスの時間間隔」、「ＣＭＤ５０２」は「メモリアクセス命令の種類」、「ＡＤＤＲＥＳＳ５０３」は「メモリアクセスインタフェース２０２がメモリアクセス制御したアドレス」、「ＤＡＴＡ５０４」は「メモリアクセスインタフェース２０２がメモリ１１０に書き込む又はメモリ１１０から読み出すデータ」である。「ＤＡＴＡ  Ｖａｌｉｄ５０５」は「メモリアクセスインタフェース２０２がメモリ１１０へデータの書き込み制御又はメモリ１１０からデータの読み出し制御を行ったことを示すフラグ」である。
【００２９】
同様にして図６は履歴テーブル６００である。「ＥＮＴＲＹ６０１」は「メモリアクセスインタフェース２０２がメモリアクセス制御を行ったアクセスの時間間隔」、「ＣＭＤ６０２」は「メモリアクセス命令の種類」、「ＡＤＤＲＥＳＳ６０３」は「メモリアクセスインタフェース２０２がメモリアクセス制御したアドレス」、「ＤＡＴＡ６０４」は「メモリアクセスインタフェース２０２がメモリ１１０に書き込む又はメモリ１１０から読み出すデータ」、「ＤＡＴＡ  Ｖａｌｉｄ６０５」は「メモリアクセスインタフェース２０２がメモリ１１０へデータの書き込み制御又はメモリ１１０からデータの読み出し制御を行ったことを示すフラグ」である。
【００３０】
履歴テーブル５００、６００の容量が、履歴メモリ２０１の容量以上になったとき、履歴メモリ２０１は古い履歴を削除して、新しい履歴を上書きする構成になっている。
【００３１】
図５はエラー検出回路２０３、２０４がエラーを検出した場合の履歴テーブル５００である。エラー検出回路２０３、２０４がエラーを検出した場合、エラーを検出した時間から一定の時間後に履歴メモリ２０１の更新が停止する。これはエラー検出回路２０３、２０４がエラーを検出してから履歴メモリ２０１が更新停止するための信号を受信するまでに一定のエラー伝播時間がかかるからである。履歴メモリ２０１の更新の停止履歴からどのアクセスによりエラーを検出したかを知ることが出来る。
【００３２】
図６は、エラー検出回路２０３、２０４がエラーを検出しなかった場合の履歴テーブル６００である。エラー検出回路２０３、２０４がエラーを検出しない場合は、アドレスコントローラ２０５は履歴の更新を行っている。ユーザが履歴テーブル６００を参照するとき、履歴メモリ２０１の更新の一時停止を行う。
【００３３】
エラー検出回路２０３は、メモリアクセスインタフェース２０２がメモリ１１０からデータを読み出したときのエラーを検出する回路である。エラー検出回路２０４は、メモリ１１０にデータを書き込むときのエラーを検出する回路である。エラー検出回路２０３、２０４は、例えばＳ４ＥＣ−Ｄ４ＥＤ回路である。Ｓ４ＥＣ−Ｄ４ＥＤ回路は、４ビットシングルブロックエラー訂正、４ビットダブルブロックエラー検出を行う回路である。エラーは、訂正可能エラー（Ｃｏｒｒｅｃｔａｂｌｅ  Ｅｒｒｏｒ以後、ＣＥ）と、訂正不可能なエラー(ＵＥ）といったエラーである。ＵＥは例えばダブルブロックエラーなどである。ダブルブロックエラーは、データ内に２ブロックにまたがるビットエラーが存在するエラーである。一般にデータ中に存在するＮビットの誤りを訂正するには、符号の最小距離が２Ｎ＋１以上である必要がある。本実施例に係るエラー検出回路２０３、２０４における符号の最小距離は２Ｎ＋１であり、Ｎビットまでのエラーのみ訂正可能な回路である。
【００３４】
エラー検出回路２０３は、メモリ１１０からのデータの読み出しにおいてエラーを検出した場合、エラー検出信号をアドレスコントローラ２０５に送る。エラー検出回路２０３からエラー検出信号を受信したアドレスコントローラ２０５は、履歴メモリ２０１にメモリアクセスインタフェースから書き込まれているメモリアクセス時のアドレス、メモリアクセス時の命令、メモリアクセス時のデータ、それらと共に記録しているメモリアクセス時間間隔の更新を停止する。エラー検出回路２０４は、メモリ１１０へのデータ書き込みにおいてエラーを検出した場合、エラー検出信号をアドレスコントローラ２０５に送る。
【００３５】
アドレスコントローラ２０５はエラー検出回路２０４からエラー検出信号を受信すると、メモリコントローラ１０６が行う履歴メモリ２０１へのメモリアクセスのログの記録を停止する。ここでログは「ＥＮＴＲＹ」、「ＣＭＤ」、「Ａｄｄｒｅｓｓ」、「ＤＡＴＡ」、「ＤＡＴＡ  Ｖａｌｉｄ」である。
【００３６】
［アドレスコントローラ２０５、ヒストリストップ回路２０６］
アドレスコントローラ２０５は、メモリアクセスインタフェースから送られるメモリアクセスの履歴を履歴メモリ２０１に記録する際の履歴メモリ２０１のアドレスを生成し履歴メモリ２０１を制御する機能を有している。またエラー検出回路２０３がメモリリードエラーを検出した場合、エラー検出回路２０３はシステムコントローラ１０１にスクラブライト処理を要求する。つまりエラー検出回路２０３がメモリ１１０からのデータの読み出しにおいてエラーを検出した場合は、再びエラーを検出したデータのアドレスと同一アドレスのデータ読み出しを行い、データの訂正後再書き込み動作を要求することをシステムコントローラ１０１に依頼する。このときエラー検出回路２０３は、ヒストリストップ回路２０６を介してシステムコントローラ１０１に要求する。ヒストリストップ回路２０６は、システムコントローラ１０１からのスクラブライト命令の信号を受信し、このスクラブライト命令の信号をアドレスコントローラ２０５に送信する。アドレスコントローラ２０５は、スクラブライト命令の信号を受信すると、履歴メモリ２０５の更新を停止する制御を行う。システムコントローラ１０１はスクラブライト命令の信号を、他のメモリコントローラ１０７、１０８、１０９が有するヒストリストップ回路に同期して送信する。ここで同期してスクラブライト命令の信号を送るということは、スクラブライト命令の信号をメモリコントローラ１０６、１０７、１０８、１０９に同じタイミングで送信するということである。メモリコントローラ１０６、１０７、１０８、１０９それぞれのヒストリストップ回路は、スクラブライト命令の信号を受信すると、アドレスコントローラを介して、履歴メモリの更新処理を停止する。メモリコントローラ１０６、１０７、１０８、１０９は、それぞれが有する履歴メモリの処理履歴更新を防ぐことができる。これにより、メモリアクセスのエラー発生時に、すべてのメモリコントローラ１０６、１０７、１０８、１０９の履歴メモリ履歴を参照でき、エラーを詳細に解析することができる。
【００３７】
メモリ１１０、１１１、１１２、１１３は、データを格納するものであり、メモリコントローラ１０６、１０７、１０８、１０９によって制御されている。
＜１２８バイトのデータがメモリに書き込まれる具体例＞
次にＣＰＵ１０２、１０３、１０４、１０５に格納されるデータが１２８バイトの場合を例にとり、エラー発生時に履歴メモリ２０１の更新を停止することを説明する。
【００３８】
図３は、メモリコントローラ１０６において、エラーが発生した場合のサーバ１００の構成図である。
【００３９】
ＣＰＵ１０２、１０３、１０４、１０５が有するキャッシュメモリは、１２８バイトのデータがそれぞれ格納することが可能である。そしてＣＰＵ１０２が有するキャッシュメモリに１２８バイトのデータが格納されている。キャッシュメモリは、ＣＰＵ１０２内部に設けられた記憶装置である。ＣＰＵ１０２が使用する頻度が高いデータをキャッシュメモリに格納することにより、メモリ１１０、１１１、１１２、１１３へのアクセスを削減でき、処理を高速に行うことができる。
【００４０】
ＣＰＵ１０２は、１２８バイトのデータをメモリ１１０、１１１、１１２、１１３からキャッシュメモリに格納する場合、システムコントローラ１０１にアクセスしてメモリリードを行う。
【００４１】
ＣＰＵ１０２は、システム上に多数構成されるメモリシステムの全領域を表すアドレスＰＡでシステムコントローラ１０１にアクセスを行う。
【００４２】
システムコントローラ１０１は、該アドレスＰＡをアドレス変換テーブル１１４を使用し、メモリコントローラ１０６がメモリアクセスに使用できるメモリ１１０上のアドレスＭＡに変換する。
【００４３】
更にシステムコントローラ１０１は、メモリコントローラ１０６に多数接続されるメモリ(図示せず)の選択ができるようにメモリの選択情報を加え、ＭＡと共にＬＩＡに変換される。
【００４４】
ここで１２８バイトのキャッシュメモリのデータは、３２バイトずつの分割データ１１７、１１８、１１９、１２０に分けられている。メモリ１１０、１１１、１１２、１１３はそれぞれ、分割データ１１７、１１８、１１９、１２０を格納している。システムコントローラ１０１は、４つのメモリコントローラ１１０、１１１、１１２、１１３を同期制御し、メモリコントローラ１１０、１１１、１１２、１１３はメモリ１１０、１１１、１１２、１１３に同期してメモリアクセスを行う。システムコントローラ１０１はＣＰＵ１０２、１０３、１０４、１０５からのメモリアクセスを制御するコントローラであるため、１つのメモリアクセスによるメモリコントローラ１０６、１０７、１０８、１０９への命令及びデータの送受信制御は同期して行った方が効率的であり、処理を高速化することができる。
【００４５】
システムコントローラ１０１は、システムコントローラ１０１の記憶部における３２バイトの分割データ１１７、１１８、１１９、１２０のアドレスをメモリコントローラ１０６、１０７、１０８、１０９におけるアドレスに変換する。システムコントローラ１０１は、アドレス変換テーブル１１４を参照して、分割データ１１７、１１８、１１９、１２０のアドレス変換を行う。
【００４６】
図７は、アドレスパケットである。アドレスパケット７０１は、メモリコントローラ１０６に送信される。アドレスパケット７０２は、メモリコントローラ１０７に送信される。アドレスパケット７０３は、メモリコントローラ１０８に送信される。アドレスパケット７０４は、メモリコントローラ１０９に送信される。アドレスパケット７０１はＩＤ７０１１、ＣＭＤ７０１２、ＬＩＡ７０１３から構成されている。アドレスパケット７０２はＩＤ７０２１、ＣＭＤ７０２２、ＬＩＡ７０２３から構成されている。アドレスパケット７０３はＩＤ７０３１、ＣＭＤ７０３２、ＬＩＡ７０３３から構成されている。アドレスパケット７０４はＩＤ７０４１、ＣＭＤ７０４２、ＬＩＡ７０４３から構成されている。ＩＤ７０１１は、メモリコントローラ１０６がリードリクエストを管理する情報である。同様にＩＤ７０２１は、メモリコントローラ１０７がリードリクエストを管理する情報である。ＩＤ７０３１は、メモリコントローラ１０８がリードリクエストを管理する情報である。ＩＤ７０４１は、メモリコントローラ１０９がリードリクエストを管理する情報である。ＣＭＤ７０１２は、メモリ１１０におけるメモリアクセス命令を示す情報である。同様にＣＭＤ７０２２は、メモリ１１１におけるメモリアクセス命令を示す情報である。ＣＭＤ７０３２は、メモリ１１２におけるメモリアクセス命令を示す情報である。ＣＭＤ７０４２は、メモリ１１３におけるメモリアクセス命令を示す情報である。ＬＩＡ７０１３は、メモリコントローラ１０６におけるメモリアクセスのアドレスを示す情報である。同様にＬＩＡ７０２３は、メモリコントローラ１０７におけるメモリアクセスのアドレスを示す情報である。ＬＩＡ７０３３は、メモリコントローラ１１９におけるメモリアクセスのアドレスを示す情報である。ＬＩＡ７０４３は、メモリコントローラ１０９におけるメモリアクセスのアドレスを示す情報である。
【００４７】
システムコントローラ１０１は、メモリアクセスインタフェース２０２にアドレスパケット７０１を転送する。同様にしてシステムコントローラ１０１０は、メモリアクセスインタフェースにアドレスパケットを転送する。
【００４８】
アドレスパケット７０１を受信したメモリアクセスインタフェース２０２は、パケット内のＬＩＡ７０１３からＭＡを抽出し、抽出した該ＭＡに従ってメモリ１１０から分割データ１１７を得る。
【００４９】
メモリコントローラ１０６は、エラー検出回路２０３によって分割データ１１７におけるエラーの有無を判断する。同様にしてメモリコントローラ１０７、１０８、１０９もそれぞれが有するエラー検出回路によって、それぞれが受信する分割データ１１８、１１９、１２０におけるエラーの有無を判断する。
【００５０】
メモリコントローラ１０６において、メモリアクセスインタフェース２０２は、履歴メモリ２０１に、「メモリアクセス時間間隔」を示す「ＥＮＴＲＹ」、「メモリアクセス時の命令」を示す「ＣＭＤ」、「ＬＩＡ７０１３」及び「分割データ１１７」、「メモリアクセスインタフェース２０２がメモリ１１０へデータの書き込み制御又はメモリ１１０からデータの読み出し制御を行ったことを示すフラグ」を示す「ＤＡＴＡ  Ｖａｌｉｄ」を記録する。同様にしてメモリコントローラ１０７、１０８、１０９において、それぞれのメモリアクセスインタフェースは、それぞれの履歴メモリ２０１に、メモリアクセス時間間隔を示す「ＥＮＴＲＹ」、メモリアクセス時の命令を示す「ＣＭＤ」、メモリアクセスアドレスを包含するＬＩＡを示す「Ａｄｄｒｅｓｓ」、リードデータを示す「ＤＡＴＡ」及びメモリアクセスインタフェースがメモリへデータの書き込み制御又はメモリからデータの読み出し制御を行ったことを示すフラグを示す「ＤＡＴＡ  Ｖａｌｉｄ」を記録する。
【００５１】
メモリコントローラ１０６において、エラー検出回路２０３が分割データ１１７のエラーを検出した場合、エラー検出回路２０３はエラー検出信号を履歴メモリ停止信号として、アドレスコントローラ２０５に送信する。アドレスコントローラ２０５は、「メモリアクセス時間間隔」、「メモリアクセス時の命令」、「ＬＩＡ７０１３」、「分割データ１１７」の記録を続けている履歴メモリ２０１に対し、該エラー検出信号により履歴メモリ２０１への記録を停止する。
【００５２】
そしてアドレスコントローラ２０５は、エラー検出信号を受信すると、ヒストリストップ回路２０６を介して、システムコントローラ１０１にスクラブライト要求依頼情報をパケットの形式で送信する。スクラブライト要求依頼情報は、エラー訂正後再書き込み処理の要求を依頼する旨を示す情報である。
【００５３】
システムコントローラ１０１は、スクラブライト要求依頼情報を受信すると、スクラブコントローラ１１５を用いてスクラブライト命令をメモリコントローラ１０６、１０７、１０８、１０９に同期して送信する。メモリコントローラ１０６、１０７、１０８、１０９は、それぞれのヒストリストップ回路によってスクラブライト命令を履歴メモリ２０１の記録停止信号として受信する。スクラブライト命令を受信すると、ヒストリストップ回路はアドレスコントローラを介して、履歴メモリの更新処理を停止する。
【００５４】
メモリコントローラ１０６、１０７、１０８、１０９は、それぞれの履歴メモリの処理履歴更新を防ぐことができる。そのため、サーバ１００は、エラー発生時における１２８バイトのデータを、メモリコントローラ１０６、１０７、１０８、１０９の履歴メモリから参照でき、エラーを詳細に解析することができる。
［履歴更新停止のフローチャート］
図８は、本実施例における履歴メモリ２０１を停止するフローチャートである。
【００５５】
メモリアクセスインタフェース２０１は、システムコントローラ１０１からの命令に基づいて、メモリ１１０から分割データを読み出す（ステップＳ８０１）。メモリアクセスインタフェース２０１は、読み出した分割データをエラー検出回路２０３に転送する。
【００５６】
エラー検出回路２０３は、分割データ２０３におけるエラーの有無を判断する（ステップＳ８０２）。エラーの有無の判断は、例えば、S4EC-D4EDのようなECC回路と同様に、エラーを検出対象となるデータと、その冗長としてコード化されて送られるチェックビットとの比較演算により行われる。
【００５７】
エラー検出回路２０３がエラーを検出しない場合（ステップＳ８０２  ＮＯ）、エラー検出の処理は終了する。エラー検出回路２０３がエラーを検出した場合（ステップＳ８０２  ＹＥＳ）、エラー検出回路２０３は、アドレスコントローラ２０５を介して、自メモリコントローラ内の履歴メモリを停止し、リードデータの再読み出しの命令をシステムコントローラ１０１に要求する（ステップＳ８０３）。システムコントローラ１０１は、分割データのスクラブライトの命令をすべてのメモリコントローラ１０６、１０７、１０８、１０９に同期して送信する。メモリコントローラ１０６、１０７、１０８、１０９は、分割データのスクラブライトの命令を受信し（ステップＳ８０４）、受信した再読み出しの命令に基づいて、それぞれの履歴メモリを停止する（ステップＳ８０５）。
（実施例２）
本実施例では、Ｍｉｒｒｏｒモードについて説明する。
＜サーバ９００の概念図＞
図９は、本実施例に係るサーバ１００の概念図である。
【００５８】
サーバ１００は、システムコントローラ９０１、ＣＰＵ（Ｃｅｎｔｒａｌ ＰｒｏｃｅｓｓｉｎｇＵｎｉｔ）９０２、９０３、９０４、９０５、メモリコントローラ９０６、９０７、９０８、９０９、メモリ９１０、９１１、９１２、９１３とから構成される。サーバ９００は、Ｍｉｒｒｏｒモードで動作する。Ｍｉｒｒｏｒモードとは、サーバ９００がメモリ９１０、９１１の組と９１２、９１３の組に同一のデータを格納し、メモリ９１０、９１１、９１２、９１３を同期して制御するモードである。本実施例では、データ９１６とデータ９１７は同一の内容のデータである。またメモリ９１０に格納される分割データ９１８とメモリ９１２に格納される分割データ９２０は同一内容の分割データである。同様にメモリ９１１に格納される分割データ９１９とメモリ９１３に格納される分割データ９２１は同一内容の分割データである。
【００５９】
図１０は、メモリコントローラ９０６において、エラーが発生した場合のサーバ９００の構成図である。
【００６０】
まずＣＰＵ９０２、９０３、９０４、９０５が有するキャッシュメモリは、１２８バイトのデータがそれぞれ格納することが可能である。そしてＣＰＵ９０２が有するキャッシュメモリに１２８バイトのデータが格納されている。キャッシュメモリは、ＣＰＵ９０２内部に設けられた記憶装置である。ＣＰＵ９０２が使用する頻度が高いデータをキャッシュメモリに格納することにより、メモリ９１０、９１１、９１２、９１３へのアクセスを削減でき、処理を高速に行うことができる。
【００６１】
ＣＰＵ９０２は、この１２８バイトのデータ９１６、９１７をメモリ９１０、９１１、９１２、９１３からキャッシュメモリに格納するとき、システムコントローラ９０１にアクセスしメモリリードを行う。システムコントローラ９０１は、データ９１６をコピーして、データ９１７を生成する。データ９１６とデータ９１７は同一内容を示すデータである。
【００６２】
ＣＰＵ９０２は、システム上に多数構成されるメモリシステムの全領域を表すアドレスＰＡでシステムコントローラ９０１にアクセスを行う。システムコントローラ９０１は、該アドレスＰＡをアドレス変換テーブル９１４を使用し、メモリコントローラ９０６がメモリアクセスに使用できるメモリ９１０上のアドレスＭＡに変換する。更にシステムコントローラ９０１は、メモリコントローラ９０６に多数接続されるメモリ(図示せず)の選択ができるようにメモリの選択情報を加え、ＭＡと共にＬＩＡに変換される。
【００６３】
ここで１２８バイトのキャッシュメモリのデータ９１６は、６４バイトの分割データ９１８、９１９に分けられる。同様にして１２８バイトのキャッシュメモリのデータ９１７は、６４バイトの分割データ９２０、９２１に分けられる。メモリ９１０、９１１、９１２、９１３はそれぞれ、分割データ９１８、９１９、９２０、９２１を格納している。システムコントローラ９０１は、４つのメモリコントローラ９０６、９０７、９０８、９０９を同期制御し、メモリコントローラ９０６、９０７、９０８、９０９はメモリ９１０、９１１、９１２、９１３に同期してメモリアクセスを行う。システムコントローラ９０１はＣＰＵ９０２、９０３、９０４、９０５からのメモリアクセスを制御するコントローラであるため、１つのメモリアクセスによるメモリコントローラ９０６、９０７、９０８、９０９への命令及びデータの送受信制御は同期して行った方が効率的であり、処理を高速化することができる。
【００６４】
システムコントローラ９０１は、システムコントローラ１０１の記憶部における６４バイトの分割データ９１８、９１９、９２０、９２１のアドレスをメモリコントローラ９０６、９０７、９０８、９０９におけるアドレスに変換する。システムコントローラ９０１は、アドレス変換テーブル９１４を参照して、メモリリードを行うアドレスＰＡのアドレス変換を行う。システムコントローラ９０１は、変換したアドレスをメモリコントローラ９０６、９０７、９０８、９０９に転送する。
【００６５】
Ｎｏｎ−Ｍｉｒｒｏｒモードの場合と同様に、アドレスパケットは共にＩＤを有し、ＩＤによって管理がなされている。そしてアドレスパケットは、メモリ９１０のアドレスを含んでいる。
【００６６】
メモリコントローラ９０６に転送されたアドレスパケット１２０１は、メモリアクセスインタフェース１１０２によって、ＣＭＤ１２０１２からメモリアクセスの為の命令を、ＬＩＡ１２０１３からメモリアクセスの為のアドレスＭＡを抽出し、メモリ９１０に対しメモリリードアクセスを行う。
【００６７】
メモリ９１０はメモリコントローラ９０６からの命令に従った動作をし、リード命令の場合は、分割データ６４バイト分を８バイトずつ８回に分けてメモリコントローラ９０６に転送する。同様にメモリ９１１、９１２、９１３からもメモリコントローラ９０７、９０８、９０９に８バイトずつ８回に分けて分割データを転送する。
【００６８】
メモリコントローラ９０６は、システムコントローラ９０１へ６４バイトの分割データ９１８を転送する。メモリコントローラ９０６は、分割データ９１８を８バイトずつ、８回に分けてシステムコントローラ９０１に転送する。このときメモリコントローラ９０６は予め受け取っていたアドレスパケット１２０１に付加されていたＩＤ１２０１１をデータパケットに付加してシステムコントローラ９０１に転送する。システムコントローラ９０１は、自身が管理するＩＤとＩＤ１２０１１を比較し、リード命令と分割データ９１８の対応付けを行う。同様にメモリコントローラ９０７は、システムコントローラ９０１へ６４バイトの分割データ９１９を転送する。システムコントローラ９０１は、分割データ９１８、９１９を連結し、１２８バイトのデータ９１６を生成する。システムコントローラ９０１は、データ９１６をＣＰＵに転送し、ＣＰＵ内のキャッシュメモリに格納する。同様にしてメモリコントローラ９０８．９０９は、システムコントローラ９０１へ６４バイトの分割データ９２０、９２１を転送する。メモリコントローラ９０８、９０９はそれぞれ、分割データ９２０、９２１を８バイトずつ、８回に分けてシステムコントローラ９０１に転送する。このときメモリコントローラ９０８、９０９は予め受け取っていたアドレスパケット１２０２、１２０３に付加されていたＩＤ１２０３１、１２０４１をデータパケットに付加してシステムコントローラ９０１に転送する。システムコントローラ９０１は、自身が管理するＩＤとＩＤ１２０３１、１２０４１を比較し、リード命令と分割データ９２０、９２１の対応付けを行う。システムコントローラ９０１は、分割データ９２０、９２１を連結し、１２８バイトのデータ９１７を生成する。システムコントローラ９０１は、データ９１７をＣＰＵに転送し、ＣＰＵ内のキャッシュメモリに格納する。
【００６９】
この一連のメモリリード動作の中でメモリコントローラ９０６の中のエラー検出回路１１０３は、分割データ９１８のエラーの有無を判断する。分割データ９１８のエラーの有無の判断は、具体的には以下のように行う。まず検出回路１１０４が分割データ９１８に対応するチェックビット生成する。メモリアクセスインタフェース１１０２は、チェックビットは分割データ９１８と共にメモリ９１０に格納する。そしてメモリアクセスインタフェース１１０２は、メモリ９１０よりチェックビットと分割データ９１８を読み出してエラー検出回路１１０３に転送する。そしてエラー検出回路１１０２は、分割データ９１８のエラー有無の判断を、チェックビットと分割データ９１８をＥＯＲ演算より算出する。
【００７０】
またメモリアクセスインタフェース１１０２は、メモリコントローラ９０６におけるメモリリードアクセスを履歴メモリ１１０１に記録する。これによりユーザは、履歴メモリ１１０１に記録された内容を解析することができ、どのようなメモリアクセスが行われたか、どのようなデータが送受信されたかを知ることが出来る。
【００７１】
エラー検出回路１１０３が分割データ９１８のリードエラーを検出すると、エラー検出回路１１０３は、履歴メモリ１１０１のアドレス管理回路であるアドレスコントローラ１１０５にエラー検出信号が送信する。
【００７２】
アドレスコントローラ１１０５は、エラー検出信号を受信した後、履歴メモリ１１０１のアドレス生成を停止し、履歴メモリ１１０１の更新動作を停止する。
【００７３】
また分割データ９１８のリードエラーを検出したエラー検出回路１１０３は、メモリ９１０内のデータを訂正するために、スクラブライト処理をシステムコントローラ９０１に依頼する。スクラブライト処理依頼を受けたシステムコントローラ９０１は、４つのメモリコントローラ９０６、９０７、９０８、９０９に対し、スクラブライト命令を送信する。４つのメモリコントローラ９０６、９０７、９０８、９０９を同期して制御するため、システムコントローラ９０１は４つのメモリコントローラ９０６、９０７、９０８、９０９全てにスクラブライト命令を送信する。
【００７４】
システムコントローラ９０１からスクラブライト命令を受信したメモリコントローラ９０６は、ヒストリストップ回路１１０６内にあるスクラブコントローラによりスクラブライトを実行する。
【００７５】
またヒストリストップ回路１１０６は、スクラブライト命令を受信すると、履歴メモリ１１０１を停止するために、アドレスコントローラ１１０５に履歴メモリ停止信号を送信し、履歴メモリ１１０１のアドレス生成を停止する。
【００７６】
メモリコントローラ９０６において、メモリアクセスインタフェース１１０２は、履歴メモリ１１０１にメモリアクセスインタフェース２０２がメモリアクセス制御を行ったアクセスの時間間隔「ＥＮＴＲＹ」、メモリアクセス命令の種類「ＣＭＤ」、メモリアクセスインタフェース２０２がメモリアクセス制御したアドレス「ＡＤＤＲＥＳＳ」、メモリアクセスインタフェース２０２がメモリ１１０に書き込む又はメモリ１１０から読み出すデータ「ＤＡＴＡ」、メモリアクセスインタフェース２０２がメモリ１１０へデータの書き込み制御又はメモリ１１０からデータの読み出し制御を行ったことを示すフラグ「ＤＡＴＡ  Ｖａｌｉｄ」を記録する。
【００７７】
同様にしてメモリコントローラ９０７、９０８、９０９のメモリアクセスインタフェースは、それぞれのメモリコントローラ９０７、９０８、９０９が有する履歴メモリに、メモリアクセスインタフェースがメモリアクセス制御を行ったアクセスの時間間隔「ＥＮＴＲＹ」、メモリアクセス命令の種類「ＣＭＤ」、メモリアクセスインタフェースがメモリアクセス制御したアドレス「ＡＤＤＲＥＳＳ」、メモリアクセスインタフェースがメモリに書き込む又はメモリから読み出すデータ「ＤＡＴＡ」、メモリアクセスインタフェースがメモリへデータの書き込み制御又はメモリからデータの読み出し制御を行ったことを示すフラグ「ＤＡＴＡ  Ｖａｌｉｄ」を記録する。  
【００７８】
メモリコントローラ９０６において、エラー検出回路１１０４が分割データ９１８のエラーを検出した場合、エラー検出回路１１０４はエラー検出信号を履歴メモリ停止信号としてアドレスコントローラ１１０５に転送する。
【００７９】
そしてアドレスコントローラ１１０５は、エラー検出の信号を受信すると、履歴メモリ１１０５の更新を停止する。エラー検出回路１１０４は再度、ヒストリストップ回路１１０６を介して、システムコントローラ９０１にスクラブライト要求依頼情報をパケットの形式で送信する。スクラブライト要求依頼情報は、エラー訂正後再書き込み処理の要求を依頼する旨を示す情報である。
【００８０】
システムコントローラ９０１は、スクラブライト要求依頼情報を受信すると、スクラブコントローラ９１４を用いてスクラブライト要求情報をメモリコントローラ９０６、９０７、９０８、９０９に同期して送信する。メモリコントローラ９０６、９０７、９０８、９０９は、それぞれのヒストリストップ回路によってスクラブライト要求信号を受信する。スクラブライト要求情報を受信すると、ヒストリストップ回路はアドレスコントローラを介して、履歴メモリの更新処理を停止する。
【００８１】
メモリコントローラ９０６、９０７、９０８、９０９は、それぞれの履歴メモリの処理履歴更新を防ぐことができる。そのため、サーバ９００は、エラー発生時における１２８バイトのデータを、メモリコントローラ１０６、１０７、１０８、１０９の履歴メモリから参照でき、エラーを詳細に解析することができる。Ｍｉｒｒｏｒモードにおいて、分割データ９１８と分割データ９２０は、同一の内容のデータであるため、「履歴メモリ１１０１に記録されている履歴テーブル」と「メモリコントローラ９０８が有する履歴メモリに記録されている履歴テーブル」とを比較することによって、エラーの発生した場合の履歴テーブルとエラーが発生しない場合の履歴テーブルを比較することができる。これによりエラーの解析をエラー検出回路で訂正できなかったエラーであっても行うことが可能となる。
【００８２】
図１３は、履歴テーブル１３００である。履歴テーブル１３００には、「ＥＮＴＲＹ１３０１」、「ＣＭＤ１３０２」、「ＡＤＤＲＥＳＳ１３０３」、「ＤＡＴＡ１３０４」、「ＤＡＴＡ  Ｖａｌｉｄ１３０５」が記されている。
【００８３】
「ＥＮＴＲＹ１３０１」は「メモリアクセスインタフェース１１０２がメモリアクセス制御を行ったアクセスの時間間隔」、「ＣＭＤ１３０２」は「メモリアクセス命令の種類」、「ＡＤＤＲＥＳＳ１３０３」は「メモリアクセスインタフェース１１０２がメモリアクセス制御したアドレス」、「ＤＡＴＡ１３０４」は「メモリアクセスインタフェース１１０２がメモリ９１０に書き込む又はメモリ９１０から読み出すデータ」である。「ＤＡＴＡ  Ｖａｌｉｄ１３０５」は「メモリアクセスインタフェース１１０２がメモリ９１０へデータの書き込み制御又はメモリ９１０からデータの読み出し制御を行ったことを示すフラグ」である。
【００８４】
同様にして図１４は履歴テーブル１４００である。「ＥＮＴＲＹ１４０１」は「メモリアクセスインタフェース１１０２がメモリアクセス制御を行ったアクセスの時間間隔」、「ＣＭＤ１４０２」は「メモリアクセス命令の種類」、「ＡＤＤＲＥＳＳ１４０３」は「メモリアクセスインタフェース１１０２がメモリアクセス制御したアドレス」、「ＤＡＴＡ１４０４」は「メモリアクセスインタフェース１１０２がメモリ９１０に書き込む又はメモリ９１０から読み出すデータ」、「ＤＡＴＡ  Ｖａｌｉｄ１４０５」は「メモリアクセスインタフェース１１０２がメモリ９１０へデータの書き込み制御又はメモリ９１０からデータの読み出し制御を行ったことを示すフラグ」である。
【００８５】
履歴テーブル１３００、１４００の容量が、履歴メモリ９０１の容量以上になったとき、履歴メモリ９０１は古い履歴を削除して、新しい履歴を上書きする構成になっている。
【００８６】
また本願発明における制御手段が行う処理は、本実施例におけるシステムコントローラ１０１、９０１が実行する処理に含まれるものである。本願発明における格納手段が行う処理は、本実施例におけるメモリ１１０、１１１、１１２、１１３、９１０、９１１、９１２、９１３が実行する処理に含まれるものである。本願発明における格納制御手段が行う処理は、本実施例におけるメモリコントローラ１０６、１０７、１０８、１０９、９０６、９０７、９０８、９０９が実行する処理に含まれるものである。本願発明における履歴記憶手段が行う処理は、本実施例における履歴メモリ２０１、９０１が実行する処理に含まれるものである。本願発明におけるエラー検出手段が行う処理は、本実施例におけるエラー検出回路２０３、２０４、９０３、９０４が実行する処理に含まれるものである。本願発明におけるエラー訂正信号生成手段は、本実施例におけるスクラブコントローラが実行する処理に含まれるものである。本願発明における履歴停止手段は、本実施例におけるアドレスコントローラが実行する処理に含まれるものである。
【００８７】
次に、以上述べた情報処理装置の実施形態から抽出される技術的思想を請求項の記載形式に準じて付記として列挙する。本発明に係る技術的思想は上位概念から下位概念まで、様々なレベルやバリエーションにより把握できるものであり、以下の付記に本発明が限定されるものではない。
（付記１）データの書き込み又は読み出しの処理を行い、該処理の履歴を管理する情報処理装置において、
該データを複数の分割データに分割する制御手段と、
該制御手段が分割した複数の該分割データを格納する複数の格納手段と、
各格納手段に対応し、各格納手段へ該分割データを書き込み、又は各格納手段から分割データを読み出す処理を行う複数の格納制御手段と、
各格納制御手段が行う処理の履歴を記憶する複数の履歴記憶手段と、
該格納制御手段における該処理のエラーを検出するエラー検出手段と、
該エラー検出手段において検出したエラーを訂正する旨を示すエラー訂正信号を生成するエラー訂正信号生成手段と、
各履歴記憶手段に対応し、該エラー訂正信号に基づいて各履歴記憶手段の履歴の記憶を停止する複数の履歴停止手段と、
から構成されることを特徴とする情報処理装置。
（付記２）  付記１に記載の情報処理装置において、
該エラー訂正信号生成手段は、エラー訂正信号を同期して複数の該履歴停止手段に送信することを特徴とする情報処理装置。
（付記３）  付記１に記載の情報処理装置において、
該制御手段は該分割データを冗長して生成することを特徴とする情報処理装置。
（付記４）  付記１に記載の情報処理装置において、
該制御手段は、該分割データの該格納手段でのアドレスを管理することを特徴とする情報処理装置。
（付記５）  付記４に記載の情報処理装置において、
該制御手段は、アドレス変換テーブルを用いて、該制御手段での該分割データのアドレスと該分割データの該格納手段でのアドレスとを対応づけて管理することを特徴とする情報処理装置。
（付記６）  付記１に記載の情報処理装置において、
該履歴記憶手段は、該履歴の容量が所定の容量以上になった場合には記憶した履歴を古い順に削除し、新しい履歴を上書きすることを特徴とする情報処理装置。
（付記７）  データの書き込み又は読み出しの処理を行い、該処理の履歴を管理する履歴管理方法において、
該データを複数の分割データに分割する分割手順と、
複数の該分割データを複数の格納部に格納する格納手順と、
各格納部へ該分割データを書き込み、又は各格納部から分割データを読み出す処理を行う複数の格納制御手順と、
各格納制御手順が行う処理の履歴を記憶する履歴記憶手順と、
該格納制御手順において、該処理のエラーを検出するエラー検出手順と、
該エラー検出手順において検出したエラーを訂正する旨を示すエラー訂正信号を生成するエラー訂正信号生成手順と、
該エラー訂正信号に基づいて各履歴記憶手順における履歴の記憶を停止する複数の履歴停止手順と、
からなることを特徴とする履歴管理方法。
（付記８）  データの書き込み又は読み出しの処理を行い、該処理の履歴を管理する履歴管理プログラムにおいて、
該データを複数の分割データに分割する分割ステップと、
複数の該分割データを複数の格納部に格納する格納ステップと、
各格納部へ該分割データを書き込み、又は各格納部から分割データを読み出す処理を行う複数の格納制御ステップと、
各格納制御ステップが行う処理の履歴を記憶する履歴記憶ステップと、
該格納制御ステップにおいて、該処理のエラーを検出するエラー検出ステップと、
該エラー検出ステップにおいて検出したエラーを訂正する旨を示すエラー訂正信号を生成するエラー訂正信号生成ステップと、
該エラー訂正信号に基づいて各履歴記憶ステップにおける履歴の記憶を停止する複数の履歴停止ステップと、
をコンピュータに実行させることを特徴とする履歴管理プログラム。
【図面の簡単な説明】
【００８８】
【図１】本実施例に係るＮｏｎ−Ｍｉｒｒｏｒモードのサーバ１００の構成図である。
【図２】本実施例に係るメモリコントローラ１０６の構成図である。
【図３】本実施例に係るエラーが発生した場合のサーバ１００の構成図である。
【図４】本実施例に係るアドレスパケット４００である。
【図５】本実施例に係るアドレス変換テーブル５００である。
【図６】本実施例に係るアドレス変換テーブル６００である。
【図７】本実施例に係るアドレスパケットである。
【図８】本実施例における履歴メモリ２０１を停止するフローチャートである。
【図９】本実施例に係るＭｉｒｒｏｒモードのサーバ９００の構成図である。
【図１０】本実施例に係るエラーが発生した場合のサーバ１００の構成図である。
【図１１】本実施例に係るメモリコントローラ９０６の構成図である。
【図１２】本実施例に係るアドレスパケットである。
【図１３】本実施例に係るアドレス変換テーブル１３００である。
【図１４】本実施例に係るアドレス変換テーブル１４００である。
【符号の説明】
【００８９】
１００…サーバ
１０１…システムコントローラ
１０２…CPU
１０３…CPU
１０４…CPU
１０５…CPU
１０６…メモリコントローラ
１０７…メモリコントローラ
１０８…メモリコントローラ
１０９…メモリコントローラ
１１０…メモリ
１１１…メモリ
１１２…メモリ
１１３…メモリ
２０１…履歴メモリ
２０２…メモリアクセスインタフェース
２０３…エラー検出回路
２０４…エラー検出回路
２０５…アドレスコントローラ
２０６…ヒストリストップ回路
【図１】
2008158800.tif 000003
【図２】
2008158800.tif 000004
【図３】
2008158800.tif 000005
【図４】
2008158800.tif 000006
【図５】
2008158800.tif 000007
【図６】
2008158800.tif 000008
【図７】
2008158800.tif 000009
【図８】
2008158800.tif 000010
【図９】
2008158800.tif 000011
【図１０】
2008158800.tif 000012
【図１１】
2008158800.tif 000013
【図１２】
2008158800.tif 000014
【図１３】
2008158800.tif 000015
【図１４】
2008158800.tif 000016