記憶部と、データが書き込まれる前記記憶部内の記憶領域に故障があるときに前記記憶領域の代替領域としてデータを保持する交替レジスタとに接続される故障位置判定回路であって、故障がある記憶領域に記憶された故障データと、前記交替レジスタが保持するデータとを比較する比較回路と、前記比較回路による比較結果に基づいて、前記故障データの故障ビット位置を特定する位置特定回路と、を備える故障位置判定回路。前記比較回路は、前記故障データと前記交代レジスタが保持するデータとの排他論理和を求める回路であり、前記位置特定回路は、前記比較回路から出力される排他論理和データを所定長さの断片データに区分して、区分された断片データごとに前記断片データの各ビットの論理和データを取得する論理和回路と、前記論理和データによって、故障データを区分した断片データのうち、故障ビットを含む故障断片データを選択する選択回路と、を有する請求項1に記載の故障位置判定回路。前記位置特定回路は、前記交替データを区分した交替断片データのうち、前記故障断片データに対応する交替断片データを前記論理和データによって選択する回路をさらに備える請求項2に記載の故障位置判定回路。前記位置特定回路は、前記故障断片データ中の故障ビットに対応する、前記交替断片データ中の交替ビットを前記故障断片データによって選択する回路をさらに備える請求項3に記載の故障位置判定回路。記憶部と、前記記憶部内でデータが書き込まれる記憶領域に故障があるときに前記記憶領域の代替領域としてデータを保持する交替レジスタと、前記故障がある記憶領域に記憶された故障データと前記交替レジスタのデータとを比較する比較回路と、前記比較回路による比較結果データからエラービット位置を特定する位置特定回路と、を備える記憶装置。記憶装置と前記記憶装置に記憶されたデータを処理する処理部とを含み、前記記憶装置は、記憶部と、前記記憶部内でデータが書き込まれる記憶領域に故障があるときに前記記憶領域の代替領域としてデータを保持する交替レジスタと、前記故障がある記憶領域に記憶された故障データと前記交替レジスタのデータとを比較する比較回路と、前記比較回路による比較結果データからエラービット位置を特定する位置特定回路と、を備える情報処理装置。ところで、近年、記憶装置で発生したエラーに対して、エラービット位置の判定やビットの反転方向などを調査して、記憶装置の性能改善などのフィードバックを実施するケースが多くなっている。しかし、エラービット位置の判定やビットの反転方向などの調査のためECCによる技術を用いると、ECCのシンドローム解析に資源と手間がかかる。また、パリティチェックによる技術では、パリティチェックによる故障が検出されたデータの範囲、つまり、パリティチェック符号に対応するデータの範囲よりも細かく被疑箇所が特定できない。一方、キャッシュライン交替レジスタによって、キャッシュRAMのエラー箇所を救済できても、エラー箇所についての解析を行うことができない。1つの側面では、本発明は、記憶装置で発生したエラーの発生箇所の解析を行うことを目的とする。開示の技術の一側面は、記憶部と前記記憶部内でデータが書き込まれる記憶領域に故障があるときに記憶領域の代替領域としてデータを保持する交替レジスタとに接続される故障解析回路によって例示できる。本故障解析回路は、故障がある記憶領域に記憶された故障データと交替レジスタのデータとを比較する比較回路と、比較回路による比較結果データからエラービット位置を特定する位置特定回路と、を備える。本故障解析回路によれば、記憶装置で発生したエラーの発生箇所を解析することができる。以下、図面を参照して、一実施形態に係る情報処理装置について説明する。以下の実施形態の構成は例示であり、本情報処理装置は実施形態の構成には限定されない。図1に、情報処理装置に含まれるCentralProcessingUnitCPU、中央処理装置1の構成を例示する。なお、情報処理装置は、CPU1の他、図示しない主記憶装置、周辺装置、外部記憶装置、およびネットワークカード等を含む。また、情報処理装置には、ディスプレイ、入力装置等を含めてもよい。CPU1が処理部の一例である。図1のように、CPU1は、例えば、InstructionUnitIU、命令発行部、ExecutionUnitEU、演算処理部、1次キャッシュである命令キャッシュ2、1次キャッシュであるオペランドキャッシュ3、および2次キャッシュブロック4を含む。IUは、命令キャッシュ2から命令を取得し、EUに供給する。EUは、IUから供給された命令に応じた演算を実行する。演算の対象となるデータが主記憶装置に指定されていた場合に、EUは、オペランドキャッシュ3を通じて演算の対象となるデータを取得する。演算完了後、演算結果の格納先が主記憶装置の場合、EUは、オペランドキャッシュ3を通じて演算結果を主記憶装置に格納する。命令キャッシュ2は、2次キャッシュブロック4を通じた図示しない主記憶装置からの命令の読み出しフェッチともいうの際、主記憶装置のバッファ記憶として、主記憶装置に代わって高速に命令をIUに引き渡す。命令キャッシュ2は、主記憶装置よりも高速かつ小容量である。同様に、オペランドキャッシュ3は、2次キャッシュブロック4を通じた図示しない主記憶装置からのデータの読み出しの際、主記憶装置のバッファ記憶として、主記憶装置に代わって高速にデータをEUに引き渡す。オペランドキャッシュ3は、主記憶装置よりも高速かつ小容量である。図1の例では、1次キャッシュ命令キャッシュ2、オペランドキャッシュ3と、図示しない主記憶装置との間に、2次キャッシュブロック4が設けられている。2次キャッシュブロック4は、命令キャッシュ2、あるいはオペランドキャッシュ3と同様、主記憶装置よりも高速で小容量のバッファ記憶装置としての機能を提供する。ただし、2次キャッシュブロック4は、命令キャッシュ2、あるいはオペランドキャッシュ3よりも低速かつ大容量であることが多い。なお、2次キャッシュブロック4と主記憶装置との間に、さらに、3次キャッシュブロックを設けてもよい。命令キャッシュ2、あるいはオペランドキャッシュ3等は、記憶装置の一例である。以下、命令キャッシュ2、あるいはオペランドキャッシュ3等を総称してキャッシュRAMという。CPU1は、キャッシュRAMをエラーから救済するため、キャッシュライン交替レジスタを有している。以下、キャッシュライン交替レジスタを交替レジスタという。すなわち、CPU1は、交替レジスタによるリカバリフローを有するCPUであるとする。ただし、CPU1が交替レジスタを有するという場合、キャッシュRAMが交替レジスタを有している場合も含む。また、交替レジスタには、キャッシュされるデータを保持する交替データレジスタ、キャッシュされるデータのアドレスを保持する交替アドレスレジスタ、および交替データレジスタのデータに対応するキャッシュされるデータが保持されるキャッシュのWAYを示す交替WAYレジスタを含む。本実施形態の情報処理装置では、CPU1の1次キャッシュRAMにおいて固定故障が発生した場合、固定故障に対するリカバリフローが行われ、交替レジスタにエラーのない、正しいデータが登録される。ここで、固定故障は、故障がある程度の期間以上継続する故障をいい、したがって、一時的に生じる故障、例えば、アルファー線等の影響でビットが反転するソフトエラーのようなものは固定故障から除外される。本実施例ではキャッシュRAMの故障のうち、固定故障を取り扱う。また、本実施例では、記憶装置においてデータの誤りが発生する故障をエラーともいう。さらに、CPU1は、交替レジスタに正しいデータが登録された後に、キャッシュRAMから読み出したデータと交替レジスタから読み出したデータとを比較する比較回路と、比較回路による比較の結果からエラービットを特定する位置特定回路とを有する。比較回路と位置特定回路により検出されたエラービットを含むデータは、リテイン回路などに保持される。リテイン回路に保持するのは、エラー箇所をデバック等で解析できるようにするためである。保持されたデータを解析することにより固定故障したビット位置を特定することが可能である。以下、キャッシュRAM等の記憶装置に対する救済方法を例示するため、CPU1の構成と動作を説明する。ただし、本記憶装置が以下の構成に限定される訳ではない。図2に、キャッシュRAM20と交替データレジスタ22の更新動作を例示する。キャッシュRAM20は、例えば、RAM部19と、キャッシュRAM20故障時の救済機能を提供するリカバリ回路とを含む。リカバリ回路は、交替アドレスレジスタ21、交替データレジスタ22、比較器23、およびイネーブル生成回路24を含む。なお、キャッシュRAM20は、さらに、交替WAYレジスタを含むが、図2では省略している。キャッシュRAM20が記憶装置の一例であり、RAM部19が記憶領域の一例である。RAM部19は、キャッシュRAM20の記憶素子列を有するメモリ領域である。実施例では、RAM部19の構成に関しては、特に限定はない。RAM部19は、例えば、2WAY構成とする。また、RAM部19は、例えば、ワード数512、1ワードのデータ幅8バイトのRAMを8個有する。したがって、この例では、RAM部19の容量は、512×8×8=32KBとなる。また、キャッシュライン数、および1キャッシュライン当たりのバイト数には特に限定は、ない。ただし、1つのキャッシュラインは、複数のブロックに区分され、RAM部19にアクセスするアドレスによって、キャッシュラインおよびキャッシュライン中のブロックを識別可能とする。一方、交替データレジスタは、キャッシュライン中の1つのブロックに対応するデータを保持可能な容量を有する。例えば、キャッシュライン128バイト、1ブロック32バイトであれば、交替レジスタは32バイトを保持可能であるとする。また、キャッシュライン128バイト、1ブロック8バイトであれば、交替レジスタは8バイトを保持可能であるとする。さらに、交替レジスタは2WAY共通で機能とする。すなわち、交替レジスタは、故障した一方のWAYのデータを保持する。ただし、例えば、複数のWAYが同時に故障する場合を考慮して、複数のWAYに対応した交替レジスタを用意してもよい。以下、交替データレジスタ22が代替して保持するデータが本来のキャッシュRAM20RAM部19に格納されるとき、キャッシュRAM20での格納先のアドレスを交替アドレスという。また、交替データレジスタ22に保持されるデータが本来のキャッシュRAM20に格納されるとき、キャッシュRAM20での格納先のWAYを交替WAYという。実施例では、交替アドレスの初期値アドレスを0番、交替WAYを0とする。つまり、初期状態では、交替データレジスタ22は、キャッシュRAM20のアドレス=0、WAY=0のデータを保持するように設定する。キャッシュRAM20において、交替アドレス初期値0以外のアドレス、かつ交替WAY以外のWAYの領域に対して、1ビット固定故障が発生した場合を想定する。図2の例では、アドレス=iのワードを含むキャッシュラインが故障したとする。この場合には、エラーリカバリフローが行われる。以下、エラーリカバリフローの概要を説明する。まず、固定故障箇所アドレス=iを含むキャッシュラインの無効化が行われる。無効化されたキャッシュラインでは、キャッシュラインごとに設けられる図示しない無効化フラグ等に無効が設定される。キャッシュラインにエラーが発生すると、エラーが発生したキャッシュラインが無効化されるとともに、交替アドレスレジスタ21の交替アドレス、交替WAYレジスタの交替WAYが更新される。例えば、交替アドレスレジスタ21には、エラーが発生した故障キャッシュラインと、故障キャッシュライン中のエラーが発生したブロックを指定する情報が登録される。実施例では、エラーが発生した故障キャッシュラインと、故障キャッシュライン中のエラーが発生したブロックを指定する情報が交替アドレスである。また、エラーが発生したWAYは、交替WAYレジスタに登録される。無効化処理が完了すると、固定故障キャッシュラインに対するアクセスが開始され、無効化されたキャッシュラインは、キャッシュミス状態となる。キャッシュミス状態になったキャッシュラインは下位階層のキャッシュ等へのムーブイン要求refillを行う。ムーブイン要求によってムーブイン処理が行われ、下位階層からのエラーのない正しいデータがエラーキャッシュラインに対して再登録される。図2のアドレス=iを含むハッチング部分が、再登録されたキャッシュラインに相当する。キャッシュRAM20に対する再登録が行なわれるとともに、交替レジスタ22に対しても、再登録されたデータと同一のデータが登録され、ムーブイン処理が完了する。例えば、本実施例では、キャッシュライン128バイト、交替データレジスタ22の容量が32バイトである場合には、再登録された128バイトのキャッシュラインのデータのうち、交替アドレスレジスタ21の交替アドレスで特定されるブロック32バイトが交替データレジスタ32に登録される。そのため、キャッシュラインへのアクセス時のキャッシュRAM20へのアクセスアドレスと、交替アドレスとが比較器23で比較され、マッチ信号が生成される。マッチ信号は、イネーブル生成回路24においてライトイネーブル信号WEとANDゲートで演算され、イネーブル信号が生成される。そして、イネーブル信号により、交替データレジスタ22が書き込み可能となり、交替データレジスタの内容が更新される。図3に、交替データレジスタの読み出し動作を例示する。ムーブイン処理が完了すると、キャッシュRAM20に対するアクセス要求が受け付けられ、固定故障ラインに対する読み出しLOADが行われる。このとき、キャッシュRAM20に固定故障があるので、キャッシュRAM20からはエラーを含むデータが読み出される。キャッシュRAM20から読み出されたデータのアドレスおよびWAY番号と交替アドレスレジスタ21の交替アドレス、および交替WAYレジスタの交替WAYとが比較器23で比較される。ただし、図3では、交替WAYレジスタは省略されている。そして、キャッシュRAM20から読み出されたデータのアドレスと交替アドレスレジスタ21の交替アドレスとが一致し、キャッシュRAM20から読み出されたデータのWAY番号と交替WAYレジスタの交替WAYとが一致すると、比較器23によりマッチ信号が生成される。ただし、図3では、キャッシュRAM20から読み出されたデータのアドレスと交替アドレスレジスタ21の交替アドレスとの比較に関わる回路が例示され、WAY番号と交替WAYレジスタの交替WAYとの比較に関する回路は省略されている。マッチ信号により、交替データレジスタ22から読み出されたデータが選択されて、故障のない正しいデータがIUに対してLOADされる。図4は、キャッシュRAM20と交替レジスタとのエラー検出回路を例示する図である。図4では、キャッシュRAM20は、4系統設けられている。ただし、本記憶装置において、キャッシュRAM20の構成が4系統のものに限定される訳ではなく、キャッシュRAM20が単一の系統であってもよいし、4系統以上の系統を有してもよい。図4では、各系統のキャッシュRAM20は、それぞれWAY0とWAY1とを有する。また、それぞれの系統のキャッシュRAM20は、WAY0とWAY1に共通に、交替データレジスタ22を有する。さらに、各系統のキャッシュRAM20において、WAY0、WAY1、および交替データレジスタ22で発生したエラーを検出するエラー検出回路が設けられている。エラー検出回路は、例えば、パリティチェック回路、CyclicRedundancyCheckCRC、巡回冗長検査回路等である。エラー検出回路において、WAY0またはWAY1のエラーが検出されると、エラーが検出された故障キャッシュラインが無効化される。また、故障キャッシュラインと、故障キャッシュライン中のブロックとを示す交替アドレスが交替アドレスアドレスレジスタ21図3参照に登録される。一方、キャッシュRAM20からのデータ読み出し時には、交替アドレスレジスタ21のデータ交替アドレスと、キャッシュRAM20にアクセスするアドレスとが一致するか否かに応じて、キャッシュRAM20および交替データレジスタ22のいずれか一方のデータが選択されて、IUに出力される。なお、図4では、キャッシュRAM20として、命令キャッシュ2を想定しているので、データは、IUに出力されている。一方、キャッシュRAM20として、オペランドキャッシュ3を想定した場合には、選択されたデータは、EUに出力される。図5は、命令キャッシュ2として例示されるキャッシュRAM20内の交替レジスタと比較回路の構成を例示する図である。図5は、例えば、図4のキャッシュRAM20の1つの系統をさらに具体化したものである。ただし、図5では、故障検出回路は省略されている。以下、キャッシュRAM20の動作を図5の構成を例にして説明する。図5のように、キャッシュRAM20は、RAM部19を有し、RAM部19は、キャッシュRAMWAY0とキャッシュRAMWAY1とを有する。また、キャッシュRAM20は、RAM部19とともに、キャッシュライン交替レジスタとして3種類のレジスタを有する。第1のレジスタは、固定故障のキャッシュラインとそのエラービットを含むブロックがキャッシュメモリ上の何処にあるかを指し示すアドレスを登録し、保持する交替アドレスレジスタ21CLAAR:CacheLineAlternationAddressRegisterである。第2のレジスタは、固定故障のキャッシュラインのWAY情報を登録し、保持する交替WAYレジスタ25である。第3のレジスタは、固定故障のキャッシュラインの中の1つのブロックのデータを登録し、保持する交替データレジスタ22CLADR:CacheLineAlternationDataRegisterである。ここで、固定故障のキャッシュラインの中の1つのブロックの位置を示すアドレスは、交替アドレスレジスタ21に保持される。さらに、キャッシュRAM20は、交替レジスタに付随して2つのマッチ回路を有する。第1のマッチ回路は、キャッシュRAM20に入力されるアドレスと交替アドレスレジスタ21の値とを比較するアドレスマッチ回路26である。第2のマッチ回路は、キャッシュRAM20に入力されるWAYの指定情報と交替WAYレジスタ25の値とを比較するWAYマッチ回路27である。さらに、キャッシュRAM20は、RAM部19からの読み出しデータと交替データレジスタ22からのデータのいずれかを選択する交替レジスタ選択回路2Aと、WAY0とWAY1のいずれかを選択するWAY選択回路2Bとを有している。WAY選択回路2Bで選択されたデータは、IUに出力される。ただし、キャッシュRAM20が命令キャッシュ2に限定される訳ではない。したがって、例えば、キャッシュRAM20がオペランドキャッシュ3の場合には、WAY選択回路2Bの出力は、EUに出力される。さらに、キャッシュRAM20は、キャッシュRAM20でエラーが発生したときに、エラーが発生したキャッシュラインと、キャッシュライン上のビット位置を解析する故障位置判定回路30を有している。以下、図5により、キャッシュRAM20の動作を例示する。1キャッシュRAM20からの読み出しエラーなしの場合;キャッシュRAM20からの読み出し時、RAM部19には、アドレス信号L1とWAY選択信号L2が供給される。なお、キャッシュRAM20からの読み出し時、ライトイネーブル信号L3は、ネゲート例えば、値0に設定されているとする。同様に、RAM部19でエラーが検出されていないときには、交替アドレスレジスタ21および交替WAYレジスタ25は、いずれも書き込めないように、図示しないライトイネーブル信号がネゲートされているとする。RAM部19にアドレス信号L1が供給されると、WAY0およびWAY1から、アドレス信号L1に対応するキャッシュライン内のブロックのデータが読み出される。本実施例では、1キャッシュラインには例えば、4つのブロックがあり、アドレス信号L1は、キャッシュラインとキャッシュライン内のブロックとを指定する。アドレス信号L1は、交替アドレスレジスタ21に入力される。このとき、交替アドレスレジスタ21の図示しないライトイネーブル信号がネゲートされているので、アドレス信号L1は、交替アドレスレジスタ21には書き込まれない。同様に、WAY選択信号L2も、交替WAYレジスタ25には書き込まれない。RAM部19でエラーが検出されていない状態では、アドレス信号L1が指定するアドレスは、交替アドレスレジスタ26の値と一致しない。したがって、アドレスマッチ回路26の比較結果は、偽例えば、値0となり、ANDゲート29は、遮断となる。したがって、交替データレジスタ22の値は、更新されない。また、図5では、ANDゲート28は、2つの2入力ANDゲートを有する。アドレス信号L1が指定するアドレスと交替アドレスレジスタ26の値とが一致しない場合、ANDゲート28のいずれの2入力ANDゲートも、一方の入力が値0となる。したがって、ANDゲート28の出力信号である、交替WAY0-sel選択信号L4、および交替WAY1-sel選択信号L5は、ともに値0を出力する。すると、交替レジスタ選択回路2Aは、交替データレジスタ22からの信号を選択せず、RAM部19のWAY0とWAY1のデータを選択する。選択されたRAM部19のWAY0とWAY1のデータは、WAY選択回路2Bに入力される。そして、WAY選択信号L2が、WAY選択回路2Bに出力され、WAY選択信号L2に応じて、WAY0またはWAY1からの読み出しデータがIUに出力される。2キャッシュRAM20でエラーが検出された場合;キャッシュRAM20のいずれかのアドレスでエラーが検出された場合を仮定する。キャッシュRAMでエラーが検出されると、図2に示した手順にしたがって、交替アドレスレジスタ21には、RAM部19内でエラーが発生したキャッシュライン中の1つのブロックを示すアドレスが格納される。同様に、交替WAYレジスタ25には、エラーが発生したWAYを示す情報が格納される。このとき、エラーが発生したアドレスのブロックを含むキャッシュラインは無効化される。3キャッシュRAM20からの読み出しエラーありの場合;RAM部19でエラーが検出されたアドレスからの読み出しが発生すると、図3に示した手順にしたがって、交替データレジスタ22の情報が更新される。すなわち、無効化されたキャッシュラインがミスヒットになり、下位階層、例えば、図1の2次キャッシュブロック4等のキャッシュ装置あるいは下位層の記憶装置からデータが読み出され、アドレス信号L1とWAY選択信号L2で特定されるRAM部19のキャッシュラインに下位層のデータが登録される。このとき、2の処理により、交替アドレスレジスタ21には、エラーが発生したキャッシュライン内のブロックを特定するアドレスが設定されている。したがって、アドレスマッチ回路26は、真例えば、値1を出力する。同様に、交替WAYレジスタ25には、エラーが発生したWAYを特定する情報WAY番号が設定されている。したがって、WAYマッチ回路27は、真例えば、値1を出力する。また、ライトイネーブル信号L3がアサートされる例えば、値1出力。その結果、ANDゲート29は、出力信号が真値1となり、交替データレジスタ22は書き込み可能となる。その結果、下位階層からキャッシュライン中のエラーが検出されたブロックに登録されるデータと同一のデータが交替データレジスタ22に登録される。また、アドレスマッチ回路26が真例えば、値1を出力すると、ANDゲート28の2つの2入力ANDゲートは、いずれも一方の入力が値1となる。したがって、ANDゲート28は、交替ウェイレジスタ25の値を基に、交替WAY0-sel選択信号L4、および交替WAY1-sel選択信号L5のいずれか一方がアサートされる。例えば、交替WAY0-sel選択信号L4がアサートされると、交替レジスタ選択回路2Aにおいて、RAM部19のWAY0からのデータは遮断され、交替データレジスタ22のデータが選択される。このとき、交替WAY1-sel選択信号L5は、ネゲートされるので、交替レジスタ選択回路2Aにおいて、RAM部19のWAY1からのデータが選択され、交替データレジスタ22のデータからのデータは遮断される。なお、交替WAY1-sel選択信号L5がアサートされた場合には、交替レジスタ選択回路2Aの選択は、WAY0とWAY1のそれぞれにおいて、交替WAY0-sel選択信号L4がアサートされた場合と逆になる。そして、WAY選択信号L2がWAY選択回路2Bに入力され、該当するWAYのデータがIUに出力される。以降、上記エラーが検出されたキャッシュラインのブロックからの読み出しが発生すると、上記と同様の手順で、交替データレジスタ22の値が出力される。さらに、キャッシュRAM20で故障が検出されると、故障位置判定回路30は、比較回路によって、故障が検出されたアドレスのWAYのデータと、交替データレジスタ22のデータとを比較する。比較の結果、アドレス信号L1およびWAY選択信号L2で特定されるキャッシュラインのブロックと、交替データレジスタ22のデータが不一致となるビット位置が、故障ビットを示す。そこで、キャッシュRAM20は、比較回路によって特定されたビット位置をリテイン回路に保持する。つまり、交替アドレスレジスタ21の値とRAM部19のアクセスアドレスの値が一致した場合に、交替データレジスタ22のデータとキャッシュRAM20から読み出したデータとを比較することで、読み出しデータ幅分の比較結果が得られる。ただし、比較結果をそのままリテイン回路に保持するとデータ幅分のリソースを使用する。そこで、本実施例では、使用されるリソースを減らすために、固定故障ビットを含む1バイトを保持できるように比較結果のデータを選択する回路を用意する。図6は、故障位置判定回路30の構成を例示する図である。故障位置判定回路30は、比較回路31を有している。比較回路31は、エラーが発生したアドレスとWAYの番号とで指定されるキャッシュライン中のブロックのデータと、交替データレジスタ22のデータとを比較する。なお、図6では、説明を簡略化するため、8バイト64ビットを処理する回路が例示されている。すなわち、以下の図6の説明では、キャッシュラインの1ブロックは、8バイトであり、かつ、交替データレジスタ22のデータ幅も8バイトであると仮定して説明する。ただし、キャッシュRAM20において、キャッシュライン中のブロックのデータ幅、および交替データレジスタ22のデータ幅に限定がある訳ではない。比較回路31は、例えば、キャッシュライン中の1ブロックのデータと、交替データレジスタ22のデータとの間で、排他論理和ExclusiveORを実行する回路である。ただし、比較回路31は、WAY0のイネーブル信号と、制御モード信号cntlmodeが真例えば、値1のとき、ANDゲート36からイネーブル信号を入力され、動作可能となる。比較回路31は、出力信号である64ビットの比較結果パターンをバイト単位OR回路32と、セレクタ33に入力する。セレクタ33は、マルチセレクタであり、8組の1バイトデータから1バイトデータを選択する。バイト単位OR回路32は、64ビットの比較結果パターンを1バイト8ビットごとに区分して、それぞれのバイトごとに8ビットのOR演算を実行する。1バイトごとのデータが断片データの一例である。すると、64ビットの比較結果パターン中のビット値1を含むバイトの論理和が1となる。一方、64ビットの比較結果パターン中で、全ビット0のバイトの論理和が0となる。したがって、8ビットのビットパターンErrbyte70が得られる。バイト単位OR回路32と、セレクタ33とが位置特定回路の一例である。また、バイト単位OR回路32が論理和回路の一例である。また、セレクタ33が選択回路の一例である。得られた8ビットのビットパターンErrbyte70をセレクタ33の選択信号に設定することによって、比較回路31が出力した64ビットの比較結果パターンのうち、ビット値1エラービットを含むバイトデータであるErrbit70エラーバイトと呼ぶが得られる。Errbit70は、リテインレジスタ39に保持される。エラーバイトErrbit70が故障断片データの一例である。また、8ビットのビットパターンErrbyte70中のビット値1の位置が、64ビットの比較結果パターン中のエラーバイトの位置を示している。エラーバイトの位置を示す8ビットのビットパターンErrbyte70は、リテインレジスタ38に保持される。同様に、交替データレジスタ22の交替データ630が、セレクタ34に入力される。セレクタ34も、マルチセレクタであり、8組の1バイトデータから1バイトデータに選択する。8ビットのビットパターンErrbyte70は、セレクタ34の選択信号としても設定される。その結果、エラーバイトの位置に対応する交替データレジスタ22の交替データ630中のバイトデータbit70が選択される。選択されたバイトデータbit70は、エラーバイトに対する正解データということができる。バイトデータbit70が交替断片データの一例である。また、セレクタ34が、交替断片データを論理和データによって選択する回路の一例である。したがって、正解データであるbit70をセレクタ35に入力し、エラーバイトErrbit70を選択信号とすることにより、正解データ中のエラービットに対応する正解ビット値を得ることができる。正解ビット値は、故障方向ビットとして、リテインレジスタ40に保持される。正解ビット値が交替ビットデータの一例である。また、セレクタ35が交替ビットデータを故障断片データによって選択する回路の一例である。図7は、故障ビット判定用に保持されるデータの解析例である。図7のように、Errbyte61、かつ、Errbit21であるので、キャッシュRAM20からのデータByte0からByte7の64ビットのデータbit630うち、bit50がエラーであることが分かる。なお、さらに、リテインレジスタ40の値が1の場合には、正しいデータが1であるので、エラーは、ビット0に固定する故障、あるいは、ビット1を0に反転する故障であることが分かる。逆に、リテインレジスタ40の値が0の場合には、正しいデータが0であるので、エラーは、ビット1に固定する故障、あるいは、ビット0を1に反転する故障であることが分かる。すなわち、リテインレジスタ40の値により、エラーの方向を特定できる。なお、図6では、比較回路31のイネーブル信号を生成するため、WAY0のイネーブル信号WAY0-ENB、およびモード信号cntlmodeがANDゲート36に入力される。そして、WAY0のイネーブル信号WAY0-ENBと、モード信号cntlmodeの両方がアサートされたときに、比較回路31はイネーブルとなる。したがって、モード信号cntlmodeがネゲートされている場合には、比較回路31は動作しない。同様に、リテインレジスタ38-40のイネーブル信号を生成するため、リテインレジスタのイネーブル信号Retainenbと、モード信号cntlmodeがANDゲート37に入力され、リテインレジスタ38-40のイネーブル信号が生成される。したがって、モード信号cntlmodeがネゲートされている場合には、リテインレジスタ38-40は動作しない。なお、信号Retainenbは、リテインレジスタの有効無効を制御する信号である。このように、比較回路31、リテインレジスタ38-40等に、固定故障のビット調査用のモード信号cntlmodeを用意することにより、出荷の品質評価時やデバッグ時に回路の動作を有効し、例えば、出荷後は回路の動作を停止させることができる。このようなモード信号cntlmodeにより、例えば、出荷後における、故障位置判定回路30の不要な動作を抑制し、省電力対応をとることも容易に可能となる。モード信号cntlmodeは、省電力用モード信号ということもできる。図8は、固定故障ビット判定結果の履歴を保持する回路の例である。図6、図7では、Errbyte70を保持するリテインレジスタ38、Errbit70を保持するリテインレジスタ39、および故障方向ビットを保持するリテインレジスタ40で、エラーの解析結果が保持された。したがって、CPU1は、交替データレジスタ22のビット数例えば、64ビットに比較して、少ないビット数でエラーの解析結果を保持する。このように、実施例のCPU1では、回路規模を少なくすることができるので、数世代前までの情報を記録することが可能になる。以下に数世代の情報保持回路について説明する。図8のように、実施例のCPU1では、リテインレジスタ1とリテインレジスタ2を用意する。なお、信号Retainenbは、キャッシュRAM20の読み出しの有効無効を制御する信号である。また、信号cntlmodeは、図7と同様、出荷の品質評価時やデバッグ時に回路の動作を有効し、例えば、出荷後は回路の動作を停止させるための信号である。図7で説明したように、キャッシュRAM20にエラーが発生すると、交替アドレスレジスタ21の交替アドレスに対応するキャッシュRAM20の領域からデータが読み出される。そして、図6で例示した故障位置判定回路30の処理により、エラーが解析され、解析結果の情報は、リテインレジスタ1に登録される。次に、もう一度、キャッシュRAM20にエラーが発生すると、同様の手順で新たなエラーが解析され、解析結果のデータが得られる。新たな解析結果のデータはリテインレジスタ1に登録される。ただし、このとき、予めリテインレジスタ1に登録されていたデータはリテインレジスタ2に登録されていたデータと比較される。そして、比較の結果、不一致した情報があれば、新たな解析結果のデータが得られる前に、予めリテインレジスタ1に登録されていたデータはリテインアドレス2に登録される。このような回路を追加することにより数世代前のエラー情報を保持することができ、デバック効率を上げることが可能となる。<実施例の効果>以上述べたように、実施例1のCPU1は、キャッシュRAM20のエラー発生時、エラーが発生したキャッシュラインのブロックのデータと、交替データレジスタ22の値を比較回路31で比較する。そして、CPU1は、比較結果のデータにより、固定故障ビットの位置を特定することができる。特に、実施例のCPU1は、エラーバイト位置に対応する交替アドレスデータレジスタ22の正解データのバイトを取得する。さらに、実施例のCPU1は、固定故障ビットの位置を基に、正解データのバイト中の正解ビットを取得する。したがって、実施例1によれば、単ビット故障したビット位置を判定することができる。したがってRAMの冗長機能により、単ビット救済を行うことが容易に可能となる。例えば、キャッシュライン中のブロック対して、1ビットの冗長ビットセルを設けた冗長機能を想定する。上記実施例のように、故障バイト位置と故障ビット位置が特定できると、故障ビットを含むブロックのアドレスがアクセスされ、故障ビット位置と一致するビットラインがアクセスされた場合に、故障ビットに代えて冗長ビットセルを用いるようにすればよい。さらに、上記実施例の処理では、比較回路31の比較結果を1バイトずつのバイトデータに分割し、バイト内の8ビットをORゲートに入力し、バイトごとのOR処理を実行する。その結果、エラーが発生したバイト位置を1バイトにつき1ビットの情報で特定できる。例えば、8バイト64ビットの比較結果では、8ビットのErrbyte70により、エラーバイトの位置が特定できる。さらに、セレクタ33に比較回路31での比較結果データを入力し、Errbyte70によって、バイトデータを選択することによって、エラービットを値1で示すバイトデータErrbit70を選択できる。バイトデータErrbit70は、エラーバイト中のエラービットを1で示すデータである。同様に、交替データレジスタ22のデータをセレクタ34に入力し、Errbyte70によって、バイトデータを選択することによって、エラーバイトに対応する正しいバイトデータbit70を得ることができる。そして、エラーバイトに対応する正しいバイトデータbit70をセレクタ35に入力し、エラービットを含むバイトデータErrbit70によって、エラービットに対応する正しいビットデータを選択することで、エラーの発生したビットの正しい値を特定できる。以上のように、エラーが発生したキャッシュライン中のエラーの発生したブロック、エラーの発生したブロック中のエラーバイトの位置Errbyte70、エラーバイト中のエラービットを1で示す値Errbit70、エラーバイトに対応する正しいバイトデータbit70およびエラービットに対応する正しいビットデータを特定できる。したがって、実施例のCPU1は、比較回路31による比較結果のデータを全ビット保持する場合に比べて、少ないデータ量でエラーの解析結果を保持できる。例えば、図6の例では、比較結果データ64ビットに対して、エラーバイトの位置の位置をビット1で示すErrbyte70、エラーバイト中のエラービットの位置をビット1で示す値Errbit70の16ビットで、エラービット位置を特定できる。また、解析の結果、データの故障方向が特定でき、キャッシュRAM20の検証の効率を上げることができる。また、比較データを選択して保持することにより、少ない回路規模で、固定故障ビット判定を行うことが可能である。また少ない回路規模で済むために、数世代前のエラー情報を記録することも可能になる。例えば、図8に示したように、エラーの情報が異なる場合に、エラー情報を記録するようにすればよい。そして、数世代のエラー情報により、故障検出機能の実装効率と解析効率を上げることができる。