(57)【特許請求の範囲】
【請求項１】
データ信頼性を検出するための方法であって、
ソースデータを複数のソースデータブロックに分割するステップと、
各ソースデータブロックについて対応する複製データブロックを生成するステップであって、前記複製データブロックと前記ソースデータブロックとはそれぞれ異なる物理メモリブロックに格納される、生成するステップと、
各ソースデータブロックに従って、前記ソースデータブロックについて対応する信頼性維持データ構造を生成するステップと、
中央処理ユニットの第１信頼性維持スレッドが前記ソースデータブロックの信頼性チェック値を取得するため、前記第１信頼性維持スレッドに登録される信頼性維持データ構造に対応するソースデータブロックを検出するように、前記第１信頼性維持スレッドに前記信頼性維持データ構造を登録し、前記信頼性チェック値と前記ソースデータブロックに対応する信頼性維持データ構造に前記ソースデータブロックにより記録された信頼性チェック値とを比較し、異なる場合、前記ソースデータブロックにエラーが発生していることを示し、前記エラーを有するソースデータブロックを前記エラーを有するソースデータブロックに対応する複製データブロックにより置換するステップと、
を有し、
前記エラーを有するソースデータブロックを前記エラーを有するソースデータブロックに対応する複製データブロックにより置換するステップの後、当該方法は更に、
前記エラーを有するソースデータブロックを置換する対応する複製データブロックについて信頼性維持データ構造を生成し、前記複製データブロックの信頼性維持データ構造を前記中央処理ユニットの第２信頼性維持スレッドに登録するステップを有する方法。
【請求項２】
前記中央処理ユニットの第１信頼性維持スレッドに前記信頼性維持データ構造を登録するステップは、
前記中央処理ユニットに前記第１信頼性維持スレッドが存在するか判断するステップと、
存在する場合、リンクされたリストに前記ソースデータブロックに対応する信頼性維持データ構造を追加し、前記中央処理ユニットの第１信頼性維持スレッドに前記リンクされたリストを登録するステップと、
存在しない場合、前記中央処理ユニット上に第１信頼性維持スレッドを生成し、リンクされたリストに前記ソースデータブロックに対応する信頼性維持データ構造を追加し、前記中央処理ユニットの第１信頼性維持スレッドに前記リンクされたリストを登録するステップと、
を含む、請求項１記載の方法。
【請求項３】
前記ソースデータブロックを前記エラーを有するソースデータブロックに対応する複製データブロックにより置換するステップは、メモリページテーブルを修正し、前記エラーを有するソースデータブロックのメモリアドレスを前記エラーを有するソースデータブロックに対応する複製データブロックのメモリアドレスにより置換することを含む、請求項１記載の方法。
【請求項４】
前記エラーを有するソースデータブロックを前記エラーを有するソースデータブロックに対応する複製データブロックにより置換するステップの後、当該方法は更に、
前記エラーを有するソースデータブロックを修復するステップと、
前記修復が成功した場合、前記エラーを有するソースデータブロックを複製データに変更し、前記中央処理ユニットの第１信頼性維持スレッドから対応する信頼性維持データ構造を登録解除するステップと、
前記修復が不成功であった場合、メモリから前記エラーを有するソースデータブロックを削除し、前記エラーを有するソースデータブロックに対応する複製データブロックに従って新たな複製データブロックを再生成するステップと、
を有する、請求項１記載の方法。
【請求項５】
データ信頼性を検出するための装置であって、
ソースデータを複数のソースデータブロックに分割するよう構成される分割モジュールと、
各ソースデータブロックについて対応する複製データブロックを生成するよう構成される第１生成モジュールであって、前記複製データブロックと前記ソースデータブロックとはそれぞれ異なる物理メモリブロックに格納される、第１生成モジュールと、
各ソースデータブロックに従って前記ソースデータブロックについて対応する信頼性維持データ構造を生成するよう構成される第２生成モジュールと、
中央処理ユニットの第１信頼性維持スレッドが、前記ソースデータブロックの信頼性チェック値を取得するため、前記第１信頼性維持スレッドに登録される信頼性維持データ構造に対応するソースデータブロックを検出するように、前記第１信頼性維持スレッドに前記信頼性維持データ構造を登録し、前記信頼性チェック値と前記ソースデータブロックに対応する信頼性維持データ構造に前記ソースデータブロックにより記録された信頼性チェック値とを比較し、異なる場合、前記ソースデータブロックにエラーが発生していることを示し、前記エラーを有するソースデータブロックを前記エラーを有するソースデータブロックに対応する複製データブロックにより置換するよう構成される検出モジュールと、
前記エラーを有するソースデータブロックを置換する対応する複製データブロックについて信頼性維持データ構造を生成し、前記複製データブロックの信頼性維持データ構造を前記中央処理ユニットの第２信頼性維持スレッドに登録するよう構成される第３生成モジュールと、
を有する装置。
【請求項６】
前記検出モジュールは、
前記中央処理ユニットに前記第１信頼性維持スレッドが存在するか判定するよう構成される判定ユニットと、
存在する場合、リンクされたリストに前記ソースデータブロックに対応する信頼性維持データ構造を追加し、前記リンクされたリストを前記中央処理ユニットの第１信頼性維持スレッドに登録するよう構成される第１登録ユニットと、
存在しない場合、前記中央処理ユニット上に第１信頼性維持スレッドを生成し、リンクされたリストに前記ソースデータブロックに対応する信頼性維持データ構造を追加し、前記リンクされたリストを前記中央処理ユニットの第１信頼性維持スレッドに登録するよう構成される第２登録ユニットと、
を有する、請求項５記載の装置。
【請求項７】
前記検出モジュールは更に、メモリページテーブルを修正し、前記エラーを有するソースデータブロックのメモリアドレスを前記エラーを有するソースデータブロックに対応する複製データブロックのメモリアドレスにより置換するよう構成される修正ユニットを有する、請求項５記載の装置。
【請求項８】
前記エラーを有するソースデータブロックを修復するよう構成される修復モジュールと、
前記修復が成功した場合、前記エラーを有するソースデータブロックを複製データに変更し、前記中央処理ユニットの第１信頼性維持スレッドから対応する信頼性維持データ構造を登録解除するよう構成される第１実行モジュールと、
前記修復が不成功であった場合、メモリから前記エラーを有するソースデータブロックを削除し、前記エラーを有するソースデータブロックに対応する複製データブロックに従って新たな複製データブロックを再生成するよう構成される第２実行モジュールと、
を更に有する、請求項５記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術の分野に関し、特にデータ信頼性を検出するための方法及び装置に関する。
【背景技術】
【０００２】
コンピュータキーサービスの適用の増加に従って、コンピュータシステムの信頼性の要求がますます高まっている。特に経済や金融などのデータ信頼性に対する高い要求を有する分野では、処理プログラムや格納されている情報にエラーが発生すると、計り知れない損失が生じる可能性がある。従って、プログラム及び格納されている情報の信頼性を向上させることが重要である。
【０００３】
データ信頼性を検出するための２つの手段が従来技術において存在する。第１の方法は、プロセスコードセグメントの２つの複製を物理メモリに格納し、当該プロセスコードセグメントを固定サイズの記憶エリアに分割し、分割結果に基づきプロセスコードセグメントエリアと複製との間の整合性を維持するため、整合性維持スレッドとして対応する個数のカーネルスレッドを起動するというものである。あるプログラムコードセグメントにエラーがあることが検出された場合、回復処理が実行される。第２の方法は、データのブレークポイントを予め設定し、データにエラーがあることが検出されると、所定のブレークポイントにロールバックするか、又はデータをリロードし、プログラムを再起動するというものである。
【０００４】
本発明の実現形態では、本発明者は、従来技術が以下の問題を有することに気づいた。
【０００５】
第１の方法が利用されるとき、エラーを有するデータブロックに対してエラーが再発生する可能性が大きく、信頼性は、データが信頼できるか判断するためのバイトに基づき連続的に２回比較される必要があり、信頼性を維持するカーネルスレッドの個数はデータブロックの個数と同じであり、過剰なカーネルスレッドが存在することになり、これにより、システムのオーバヘッドを増大させ、システムマネージメントにとって不便なものとなる。第２の方法が利用されるとき、プログラムリセットはシステム時間を浪費し、システムのオーバヘッドを増加させ、いくつかの適用シナリオでは、プログラムリセットは、サービスに対して大きな影響を与えるため、実行が禁止される。
【発明の概要】
【０００６】
データを検出及び回復する効率性を向上させるため、本発明の実施例は、データ信頼性を検出するための方法及び装置を提供する。技術的手段は以下の通りである。
【０００７】
本発明の実施例は、データ信頼性を検出するための方法であって、
ソースデータを複数のソースデータブロックに分割するステップと、
各ソースデータブロックについて対応する複製データブロックを生成するステップであって、前記複製データブロックと前記ソースデータブロックとはそれぞれ異なる物理メモリブロックに格納される、生成するステップと、
各ソースデータブロックに従って、前記ソースデータブロックについて対応する信頼性維持データ構造を生成するステップと、
中央処理ユニットの第１信頼性維持スレッドが前記ソースデータブロックの信頼性チェック値を取得するため、前記第１信頼性維持スレッドに登録される信頼性維持データ構造に対応するソースデータブロックを検出するように、前記第１信頼性維持スレッドに前記信頼性維持データ構造を登録し、前記信頼性チェック値と前記ソースデータブロックに対応する信頼性維持データ構造に前記ソースデータブロックにより記録された信頼性チェック値とを比較し、異なる場合、前記ソースデータブロックにエラーが発生していることを示し、前記エラーを有するソースデータブロックを前記エラーを有するソースデータブロックに対応する複製データブロックにより置換するステップと、
を有する方法を提供する。
【０００８】
本発明の実施例は、データ信頼性を検出するための装置であって、
ソースデータを複数のソースデータブロックに分割するよう構成される分割モジュールと、
各ソースデータブロックについて対応する複製データブロックを生成するよう構成される第１生成モジュールであって、前記複製データブロックと前記ソースデータブロックとはそれぞれ異なる物理メモリブロックに格納される、第１生成モジュールと、
各ソースデータブロックに従って前記ソースデータブロックについて対応する信頼性維持データ構造を生成するよう構成される第２生成モジュールと、
中央処理ユニットの第１信頼性維持スレッドが、前記ソースデータブロックの信頼性チェック値を取得するため、前記第１信頼性維持スレッドに登録される信頼性維持データ構造に対応するソースデータブロックを検出するように、前記第１信頼性維持スレッドに前記信頼性維持データ構造を登録し、前記信頼性チェック値と前記ソースデータブロックに対応する信頼性維持データ構造に前記ソースデータブロックにより記録された信頼性チェック値とを比較し、異なる場合、前記ソースデータブロックにエラーが発生していることを示し、前記エラーを有するソースデータブロックを前記エラーを有するソースデータブロックに対応する複製データブロックにより置換するよう構成される検出モジュールと、
を有する装置を提供する。
【０００９】
本発明の実施例に提供される技術的手段は、以下の効果を奏する。ソースデータブロックについて、対応する複製データブロックと対応する信頼性維持データ構造とが生成され、中央処理ユニットにおける少数のスレッドが利用され、エラーが発生しているか判断するため、ソースデータブロックの信頼性チェック値が、ソースデータブロックに対応する信頼性維持データ構造にソースデータブロックにより記録された信頼性チェック値と比較され、エラーの発生後に置換用の複製データが利用され、これにより、データ信頼性に対する迅速な検出をし、エラーデータの復元処理の課題を実現し、システムオーバヘッドを低減する。
【図面の簡単な説明】
【００１０】
本発明の実施例による技術的手段をより明確に説明するため、実施例を説明するための添付した図面が以下において簡単に紹介される。明らかに、以下の説明における添付した図面は、本発明の一部の実施例であり、当業者は、創作的な努力なく添付した図面から他の図面を導出するかもしれない。
【図１】図１は、本発明の実施例１に提供されるデータ信頼性を検出するための方法の概略的なフローチャートである。
【図２Ａ】図２Ａは、本発明の実施例２に提供されるデータ信頼性を検出するための方法の概略的なフローチャートである。
【図２Ｂ】図２Ｂは、本発明の実施例２に提供されるデータ信頼性を検出するための方法の概略的なフローチャートである。
【図３】図３は、本発明の実施例３に提供されるデータ信頼性を検出するための装置の概略的な構成図である。
【発明を実施するための形態】
【００１１】
本発明の課題、技術的手段及び効果をより明確にするため、本発明の実施例は、添付した図面を参照して以下において詳細に説明される。
［実施例１］
本発明の実施例１は、データ信頼性を検出するための方法を提供し、それのフローチャートが図１に示され、以下を含む。
ステップ１０１：ソースデータを複数のソースデータブロックに分割する。
ステップ１０２：各ソースデータブロックについて対応する複製データブロックを生成し、複製データブロックとソースデータブロックとはそれぞれ異なる物理メモリブロックに格納される。
ステップ１０３：各ソースデータブロックに従って当該ソースデータブロックについて対応する信頼性維持データ構造を生成する。
ステップ１０４：中央処理ユニットの第１信頼性維持スレッドがソースデータブロックの信頼性チェック値を取得するため、第１信頼性維持スレッドに登録される信頼性維持データ構造に対応するソースデータブロックを検出するように、第１信頼性維持スレッドに信頼性維持データ構造を登録し、信頼性チェック値とソースデータブロックに対応する信頼性維持データ構造にソースデータブロックにより記録された信頼性チェック値とを比較し、異なる場合、ソースデータブロックにエラーが発生していることを示し、エラーを有するソースデータブロックをエラーを有するソースデータブロックに対応する複製データブロックにより置換する。
【００１２】
本発明の実施例では、ソースデータブロックについて、対応する複製データブロックと対応する信頼性維持データ構造とが生成され、中央処理ユニットにおける少数のスレッドが利用され、エラーが発生しているか判断するため、ソースデータブロックの信頼性チェック値が、ソースデータブロックに対応する信頼性維持データ構造にソースデータブロックにより記録された信頼性チェック値と比較され、エラーの発生後に置換用の複製データが利用され、これにより、データ信頼性に対する迅速な検出をし、エラーデータの復元処理の課題を実現し、システムオーバヘッドを低減する。
［実施例２］
本発明の実施例２は、データ信頼性を検出するための方法を提供し、それのフローチャートが図２Ａ及び２Ｂに示され、以下を含む。
ステップ２０１：ソースデータを複数のソースデータブロックに分割する。
【００１３】
信頼性の検出を要求するソースデータは、同一サイズのソースデータブロックに分割される。ソースデータはサイズに基づき平均的に分割されず、ページフレームの整数倍に従って分割され、このため、最後に分割されたソースデータブロックのサイズは、他のソースデータブロックのサイズと異なる。ページフレームは、メモリ管理における概念であり、バーチャルメモリ（すなわち、論理アドレス）アドレスを物理メモリアドレスに自動変換可能な回路がＣＰＵに追加され、当該回路を簡単化するため、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）は、４ＫＢ又は８ＫＢの長さのブロックに分割され、当該ブロックはページフレームと呼ばれる。
【００１４】
本発明の実施例では、信頼性検出を要求するソースデータは、実行中のカーネルコード、プログラムコード及びキーデータなどのシステムにとって重要なデータであってもよい。
ステップ２０２：各ソースデータブロックについて対応する複製データブロックを生成し、複製データブロックとソースデータブロックとはそれぞれ異なる物理メモリブロックに格納される。
【００１５】
各ソースデータブロックについて対応する複製データブロックが生成され、それは、ソースデータブロックにおいてエラーが発生した後の置換用に利用されるバックアップデータである。複製データブロックとソースデータブロックとは別々に格納され、それぞれ異なる物理メモリブロックに配置される。例えば、ソースデータブロックはＮＵＭＡ（Ｎｏｎ  Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ）メモリのブロックに格納され、複製データブロックは、ソースデータブロックと異なるＮＵＭＡメモリのブロックに格納される。
ステップ２０３：各ソースデータブロックに従って当該ソースデータブロックについて対応する信頼性維持データ構造を生成する。
【００１６】
具体的には、生成された各信頼性維持データ構造は、１つずつそれの対応するソースデータブロックに対応する。信頼性維持データ構造は、少なくとも以下のデータ、ソースデータブロックのデータサイズ、メモリにおけるソースデータブロックのスタートアドレス、メモリにおける複製データブロックのスタートアドレス、信頼性チェック値、エラー情報及び検出時間などの信頼性検出情報を含む。信頼性チェック値は、ソースデータブロックの正確さを判断するのに利用され、多数の利用可能なチェックアルゴリズムが存在する。例えば、信頼性チェック値は、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）アルゴリズム、ＣＲＣ３２（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）アルゴリズム又はＳＨＡ１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）アルゴリズムを介して取得されてもよく、本発明の実施例はこれに限定されるものでない。
ステップ２０４：中央処理ユニットに第１信頼性維持スレッドが存在するか判断する。
【００１７】
存在する場合、ステップ２０６を実行し、存在しない場合、ステップ２０５を実行し、ここで、第１信頼性維持スレッドは、中央処理ユニットのノードＭにおいて生成される。
【００１８】
中央処理ユニットのノードＭの第１信頼性維持スレッドは、第１信頼性維持スレッドに対応するメモリブロックを検出するだけであり、中央処理ユニットのノードＮの第２信頼性維持スレッドは、第２信頼性維持スレッドに対応するメモリブロックを検出するだけであり、これら２つのメモリブロックは同一のメモリブロックでない。従って、ソースデータブロックを格納するメモリブロックは、中央処理ユニットのノードＭの第１信頼性維持スレッドに対応するメモリブロックであり、複製データブロックを格納するメモリブロックは、中央処理ユニットのノードＮの第２信頼性維持スレッドに対応するメモリブロックであると想定される。
ステップ２０５：中央処理ユニットのノードＮにおいて第１信頼性維持スレッドを生成する。
ステップ２０６：第１のリンクされたリストにソースデータブロックに対応する信頼性維持データ構造を追加し、中央処理ユニットのノードＭの第１信頼性維持スレッドに第１のリンクされたリストを登録する。
【００１９】
中央処理ユニットのノードＭの第１信頼性維持スレッドに対応するメモリブロックにおけるソースデータブロックに対応する全ての信頼性維持データ構造が、第１のリンクされたリストに追加され、中央処理ユニットのノードＭの第１信頼性維持スレッドは、第１のリンクされたリストの信頼性維持データ構造におけるソースデータブロックのメモリのスタートアドレスに従ってソースデータブロックを見つけてもよく、ソースデータブロックを検出する。
ステップ２０７：中央処理ユニットのノードＭ上の第１信頼性維持スレッドは、ある周期に従って、第１信頼性維持スレッドに登録された信頼性維持データ構造に対応するソースデータブロックを検出する。
【００２０】
具体的な検出処理は以下を含む。
ステップ２０７１：信頼性維持データ構造が第１信頼性維持スレッドに登録された第１のリンクされたリストに存在するか判断し、存在しない場合、第１信頼性維持スレッドを登録解除する。
【００２１】
各信頼性維持データ構造は、１つのソースデータブロックに対応し、従って、信頼性維持データ構造が存在する場合、それは、検出を必要とするソースデータブロックが依然として存在することを示す。信頼性維持データ構造が存在する場合、ステップ２０７２が実行され、信頼性維持データ構造が存在しない場合、中央処理ユニットの現在のノードＭ上の第１信頼性維持スレッドが登録解除される。
ステップ２０７２：ソースデータブロックの信頼性チェック値を計算する。
【００２２】
チェック計算は、同一のチェックアルゴリズムを介しソースデータブロックに対して実行され、これは、信頼性チェックコードを生成するため、信頼性維持データ構造が組み込まれるとき、信頼性チェック値を計算するのに利用される。
ステップ２０７３：ソースデータブロックの信頼性チェック値と、ソースデータブロックに対応する信頼性維持データ構造にソースデータブロックにより記録される信頼性チェック値とを比較し、異なる場合、それはソースデータブロックにエラーが発生していることを示し、エラーを有するソースデータブロックをエラーを有するソースデータブロックに対応する複製データブロックにより置換する。
【００２３】
計算後に取得されたソースデータブロックの信頼性チェック値を、信頼性維持データ構造が組み込まれているときにソースデータブロックにより記録された信頼性チェック値とを比較する。２つの信頼性チェック値が同一である場合、それはソースデータブロックにエラーが発生していないことを示し、第１信頼性維持スレッドが次のソースデータブロックを検出し続けるように、ステップ２０７９が実行される。２つの信頼性チェック値が異なる場合、それはソースデータブロックにエラーが発生していることを示し、エラーを有するソースデータブロックを置換するため、ステップ２０７４が実行される。
ステップ２０７４：メモリページテーブルを修正し、エラーを有するソースデータブロックのメモリアドレスを、エラーを有するソースデータブロックに対応する複製データブロックのメモリアドレスにより置換する。
【００２４】
メモリページテーブルが修正され、エラーを有するソースデータブロックのメモリアドレスが、エラーを有するソースデータブロックに対応する複製データブロックのメモリアドレスと置換され、すなわち、ソースデータブロックは、エラーを有するソースデータブロックに対応する複製データブロックにより置換され、その後、複製データブロックと他のソースデータブロックとが同一のメモリブロックに格納される。
ステップ２０７５：エラーを有するソースデータブロックを置換する対応する複製データブロックについて信頼性維持データ構造を生成し、第２のリンクされたリストに複製データブロックの信頼性維持データ構造を追加する。
【００２５】
このとき、エラーを有するソースデータブロックは、エラーを有するソースデータブロックに対応する複製データブロックにより置換され、すなわち、複製データブロックはソースデータブロックに変更されるが、信頼性維持データ構造は複製データブロックに対応し、従って、複製データブロックに対応するデータ構造は、ソースデータブロックに変更された複製データブロックについて生成される。生成された信頼性維持データ構造のコンテンツは、ステップ２０３における信頼性維持データ構造のコンテンツと同じであり、当該時点に発生したエラーは、新たに生成された信頼性維持データ構造のエラー情報のフィールドに記録され、エラーが発生した時間が、検出時間のフィールドに記録される。
ステップ２０７６：中央処理ユニットのノードＮ上に第２信頼性維持スレッドが存在するか判断し、存在する場合、中央処理ユニットのノードＮの第２信頼性維持スレッドに第２のリンクされたリストを登録し、存在しない場合、中央処理ユニットのノードＮ上に第２信頼性維持スレッドを生成し、中央処理ユニットのノードＮ上の第２信頼性維持スレッドに第２のリンクされたリストを登録する。
【００２６】
エラーを有するソースデータブロックを置換する対応する複製データブロックについて、信頼性維持データ構造が生成された後、中央処理ユニットのノードＮにおいて、信頼性維持プロセスが存在するか判断され、存在する場合、第２のリンクされたリストが、中央処理ユニットのノードＮの第２信頼性維持スレッドに登録され、存在しない場合、中央処理ユニットのノードＮ上に第２信頼性維持スレッドが生成され、第２のリンクされたリストが、中央処理ユニットのノードＮ上の第２信頼性維持スレッドに登録される。
【００２７】
データの置換後、ソースデータブロックを置換するのに利用される各複製データブロックについて、信頼性維持データ構造が生成され、新たに生成された全ての信頼性維持データ構造が、中央処理ユニットのノードＮ上の第２信頼性維持スレッドに登録されてもよく、中央処理ユニットのノードＮ上の第２信頼性維持スレッドが、エラーを有するソースデータブロックを置換するこれらの複製データブロックの信頼性を検出するのに利用される。
ステップ２０７７：ある頻度に従って第２信頼性維持スレッドが第２信頼性維持スレッドに登録されるソースデータブロックを検出するように、中央処理ユニットのノードＮ上の第２信頼性維持スレッドをトリガする。
【００２８】
中央処理ユニットのノードＮに登録される第２信頼性維持スレッドは、第２信頼性維持スレッドに登録されたソースデータブロックを検出するためトリガされ、第２信頼性維持データ構造は、検出を実行するため第２のリンクされたリストの信頼性維持データ構造のスタートアドレスに従って、ソースデータブロックを検出し、当該プロセスは、中央処理ユニットのノードＭ上の第１信頼性維持スレッドの検出処理と同じであり、ここでは再度説明しない。
ステップ２０７８：エラーを有するソースデータブロックを修復し、当該修復が成功した場合、エラーを有するソースデータブロックを複製データに変更し、中央処理ユニットの第１信頼性維持スレッドからそれの対応する信頼性維持データ構造を登録解除し、修復が不成功であった場合、メモリからエラーを有するソースデータブロックを削除し、エラーを有するソースデータブロックに対応する複製データブロックに従って新たな複製データブロックを再生成する。
【００２９】
修復方法は以下の通りである。ソースデータブロックの１つの場所にエラーが発生した場合、それの対応する複製データブロックの当該場所のコンテンツが、エラーを有するソースデータブロックに複製される。
【００３０】
修復が成功した場合、メモリのページテーブルが修正され、エラーを有するソースデータブロックのメモリアドレスが、エラーを有するソースデータブロックに対応する複製データブロックのメモリアドレスと置換され、すなわち、エラーを有するソースデータブロックが複製データに変更される。また、エラーを有するソースデータブロックに対応する信頼性維持データ構造は、中央処理ユニットのノードＭ上の第１信頼性維持スレッドから登録解除される。
【００３１】
データ修復が、ハードウェアに生じた問題などある理由のため不成功であった場合、エラーを有するソースデータブロックはメモリから削除され、エラーを有するソースデータブロックを置換する複製データブロックのメモリアドレスに格納されている複製データブロックを再生成するため、エラーを有するソースデータブロックを置換する複製データブロックに従って複製が実行される。このとき、置換されたソースデータブロックと再生成された複製データブロックとは、異なる物理メモリブロックに配置される。また、エラーの修復が不成功であったことがシステムに通知され、ログとして記録され、ユーザは、ログに従ってエラーの原因をサーチし、システムをベストな状態に維持するため、ソフトウェア及びハードウェアを維持する。
ステップ２０７９：次のソースデータブロックを検出し続ける。
【００３２】
ソースデータブロックはホットスポットの程度又は範囲に基づき複数のタイプに分類され、各タイプのソースデータブロックは、特定の検出頻度に従ってデータ信頼性を検出するための信頼性維持スレッドを有することに留意すべきであり、これにより、検出頻度とソースデータブロックのホットスポットの程度又は範囲との間の関連付けが生成される。
【００３３】
本発明の実施例では、ソースデータブロックについて、対応する複製データブロックと対応する信頼性維持データ構造とが生成され、中央処理ユニットの少数のスレッドが利用され、ソースデータブロックの信頼性チェック値が、エラーの発生を判断するため、ソースデータブロックに対応する信頼性維持データ構造にソースデータブロックにより記録された信頼性チェック値と比較され、エラーの発生後の置換用に複製データが利用され、これにより、データ信頼性に対する迅速な検出と、エラーデータの回復処理の課題を実現し、システムオーバヘッドを低減する。
［実施例３］
本発明の実施例３は、データ信頼性を検出するための装置３０を提供し、それの構成図が図３に示され、
ソースデータを複数のソースデータブロックに分割するよう構成される分割モジュール３０１と、
各ソースデータブロックについて対応する複製データブロックを生成するよう構成される第１生成モジュール３０２であって、複製データブロックとソースデータブロックとはそれぞれ異なる物理メモリブロックに格納される、第１生成モジュール３０２と、
各ソースデータブロックに従って当該ソースデータブロックについて対応する信頼性維持データ構造を生成するよう構成される第２生成モジュール３０３と、
中央処理ユニットの第１信頼性維持スレッドが、ソースデータブロックの信頼性チェック値を取得するため、第１信頼性維持スレッドに登録される信頼性維持データ構造に対応するソースデータブロックを検出するように、第１信頼性維持スレッドに信頼性維持データ構造を登録し、信頼性チェック値とソースデータブロックに対応する信頼性維持データ構造にソースデータブロックにより記録された信頼性チェック値とを比較し、異なる場合、ソースデータブロックにエラーが発生していることを示し、エラーを有するソースデータブロックをエラーを有するソースデータブロックに対応する複製データブロックにより置換するよう構成される検出モジュール３０４と、
を有する。
【００３４】
検出モジュールは、
中央処理ユニットに第１信頼性維持スレッドが存在するか判定するよう構成される判定ユニット３０４１と、
存在する場合、リンクされたリストにソースデータブロックに対応する信頼性維持データ構造を追加し、リンクされたリストを中央処理ユニットの第１信頼性維持スレッドに登録するよう構成される第１登録ユニット３０４２と、
存在しない場合、中央処理ユニット上に第１信頼性維持スレッドを生成し、リンクされたリストにソースデータブロックに対応する信頼性維持データ構造を追加し、リンクされたリストを中央処理ユニットの第１信頼性維持スレッドに登録するよう構成される第２登録ユニット３０４３と、
メモリページテーブルを修正し、エラーを有するソースデータブロックのメモリアドレスをエラーを有するソースデータブロックに対応する複製データブロックのメモリアドレスにより置換するよう構成される修正ユニット３０４４と、
を有する。
【００３５】
データ信頼性を検出するための装置は更に、
エラーを有するソースデータブロックを置換する対応する複製データブロックについて信頼性維持データ構造を生成し、複製データブロックの信頼性維持データ構造を中央処理ユニットの第２信頼性維持スレッドに登録するよう構成される第３生成モジュール３０５と、
エラーを有するソースデータブロックを修復するよう構成される修復モジュール３０６と、
修復が成功した場合、エラーを有するソースデータブロックを複製データに変更し、中央処理ユニットの第１信頼性維持スレッドから対応する信頼性維持データ構造を登録解除するよう構成される第１実行モジュール３０７と、
修復が不成功であった場合、メモリからエラーを有するソースデータブロックを削除し、エラーを有するソースデータブロックに対応する複製データブロックに従って新たな複製データブロックを再生成するよう構成される第２実行モジュール３０８と、
を有する。
【００３６】
本発明の実施例では、ソースデータブロックについて、対応する複製データブロックと対応する信頼性維持データブロックとが生成され、中央処理ユニットにおいて少数のスレッドが利用され、ソースデータブロックの信頼性チェック値が、エラーの発生を判断するため、ソースデータブロックに対応する信頼性維持データ構造にソースデータブロックにより記録される信頼性チェック値と比較され、エラー発生後の置換用に複製データが利用され、これにより、データ信頼性に対する迅速な検出とエラーデータの回復処理の課題とを実現し、システムオーバヘッドを低減する。
【００３７】
本発明の実施例では、実施例３の装置の原理と方法のアイデアは、実施例１及び２の原理と方法のアイデアと同じであり、実施例１及び２と同じ実施例３の部分はここでは再度説明しない。
【００３８】
当業者は、実施例による方法のステップの全て又は一部が関連するハードウェアに指示するプログラムによって実現されてもよいことを理解すべきである。プログラムは、コンピュータ可読記憶媒体に格納されてもよい。記憶媒体は、例えば、ＲＯＭ、磁気ディスク又は光ディスクなどであってもよい。
【００３９】
上記説明は、本発明の単なる例示的な実施例であり、本発明を限定することを意図するものでない。本発明の趣旨及び原理から逸脱することなくなされる任意の変更、均等な置換又は改良は、本発明の保護範囲内に属するべきである。
【図１】
0005914660.tif 000002
【図２Ａ】
0005914660.tif 000003
【図２Ｂ】
0005914660.tif 000004
【図３】
0005914660.tif 000005